Spring Boot 1.5.x 版本,採用 MyBatis 註解方式替代 XML,適合輕量級 CRUD 系統,開發效率高。
啟動 Application 主類,訪問:
https://localhost:8080/api/city?cityName=溫嶺市
返回 JSON:
{
"id": 1,
"provinceId": 1,
"cityName": "溫嶺市",
"description": "我的家在溫嶺。"
}
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<properties>
<mybatis-spring-boot>1.2.0</mybatis-spring-boot>
<mysql-connector>5.1.39</mysql-connector>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector}</version>
</dependency>
</dependencies>
@Mapper
public interface CityDao {
@Select("SELECT * FROM city WHERE city_name = #{cityName}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "provinceId", column = "province_id"),
@Result(property = "cityName", column = "city_name"),
@Result(property = "description", column = "description")
})
City findByName(@Param("cityName") String cityName);
}
| 註解 | 作用 |
|---|---|
| @Mapper | 標識為 MyBatis Mapper,被掃描註冊 |
| @Select | 定義查詢 SQL,支持 #{param} 佔位符 |
| @Results/@Result | 映射結果集列屬性到實體字段(處理下劃線轉駝峰) |
| @Param | 參數命名,多參數時必需 |

@Insert、@Update、@Delete@ResultMap 復用映射@One、@Many 關聯查詢@SelectProvider 動態 SQLsrc/main/java ├── com.example.demo │ ├── Application.java # 啟動類 │ ├── dao/ │ │ └── CityDao.java # Mapper 介面 │ ├── entity/ │ │ └── City.java # 實體類 │ ├── service/ │ │ └── CityService.java # 業務邏輯 │ └── controller/ │ └── CityController.java # REST 控制器
完整項目:springboot-learning-example,包含詳細註解。