首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring Boot 整合 MyBatis Annotation 註解開發完整實戰

     編輯:Java 相關知識

項目背景

Spring Boot 1.5.x 版本,採用 MyBatis 註解方式替代 XML,適合輕量級 CRUD 系統,開發效率高。

運行驗證

啟動 Application 主類,訪問:

https://localhost:8080/api/city?cityName=溫嶺市

返回 JSON:

{
  "id": 1,
  "provinceId": 1,
  "cityName": "溫嶺市",
  "description": "我的家在溫嶺。"
}

核心配置詳解

1. Maven 依賴

<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>

2. Mapper 介面註解映射

@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 動態 SQL

項目結構建議

src/main/java
├── com.example.demo
│   ├── Application.java          # 啟動類
│   ├── dao/
│   │   └── CityDao.java          # Mapper 介面
│   ├── entity/
│   │   └── City.java             # 實體類
│   ├── service/
│   │   └── CityService.java      # 業務邏輯
│   └── controller/
│       └── CityController.java   # REST 控制器

源碼獲取

完整項目:springboot-learning-example,包含詳細註解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved