spring-boot 集成 MyBatis
1. 前言
spring-boot 可謂是 Java 領域中最火的框架之一, 也是目前 Java 應用開發的事實標準,如果不會使用未免有些 out。本小節,我們將一起學習如何使用 spring-boot 來集成 MyBatis。
2. 項目初始化
對于擁有 IDEA 專業版的人來說,新建 spring-boot 項目是十分方便的,當然如果你沒有也沒關系,Spring 官方給我們提供了一個快速新建項目的網站。
打開 https://start.spring.io/ 。如下:
給項目輸入合適的 groupId 和 artifactId 然后點擊生成按鈕,瀏覽器會自動下載一個壓縮包 springboot-mybatis-exmaple.zip。
解壓該包,并通過 IDE 打開這個項目。
3. 啟動器
在項目的 pom 文件中添加如下 3 個依賴:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
mybatis-spring-boot-starter 是 MyBatis 為 spring-boot 提供的啟動器,添加后就可以以少量的配置來快速的使用 MyBatis;spring-boot-starter-web 是 spring-boot 提供的 Web 啟動器,會給我們提供一個 Web 應用環境;mysql-connector-java 是 MySQL 數據庫驅動依賴。
4. 配置
在 src/main/resources 有 spring-boot 提供的默認配置文件 application.properties。在該配置文件下,我們需要添加上對于的數據源配置。
# 數據源配置,請修改為你項目的實際配置
spring.datasource.url=jdbc:mysql://localhost:3306/imooc
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
5. 實踐
5.1 模型層
在項目的 com.imooc.mybatis.springbootmybatisexample 的包下新建 model 包,并在該包下新建 User 類。如下:
public class User implements Serializable {
private Long id;
private String username;
private Integer age;
private Integer score;
// 省略 getter 和 setter 方法
}
User 類與數據表 imooc_user 對應。
5.2 數據訪問層
在 com.imooc.mybatis.springbootmybatisexample 包下新建 mapper 包,并新建 UserMapper 類。如下:
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
}
5.3 控制層
在 com.imooc.mybatis.springbootmybatisexample 包下新建 controller 包,并新建 UserController 類。如下:
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
}
使用 RestController 注解將 UserController 標記為控制器。
5.4 完善
有了雛形后,我們再為這些類添加上具體的業務,比如查詢所有 imooc_user 用戶。
-
在 UserMapper 中,我們添加上 getUsers 接口方法,并通過 Select 注解來映射相應的 SQL 語句。
@Mapper @Repository public interface UserMapper { @Select("SELECT * FROM imooc_user") List<User> getUsers(); }
-
在 UserController 中,我們添加上對應的 getUsers API,該 API 對外暴露所有用戶數據。
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserMapper userMapper; @GetMapping public List<User> getUsers() { return userMapper.getUsers(); } }
5.5 測試
運行項目,如果你使用 IDE,可直接通過按鈕來運行,如果沒有也可使用終端來運行程序:
mvn spring-boot:run
運行成功后,我們測試一下:
curl 127.0.0.1:8080/user/
[{"id":1,"username":"peter","age":18,"score":100},
{"id":2,"username":"pedro","age":24,"score":200},
{"id":3,"username":"jerry","age":28,"score":500}]
6. 小結
- spring-boot 集成 MyBatis 是十分方便的,只需少量的配置就可輕松使用 MyBatis。
- spring-boot + MyBatis 幾乎是國內標配,請務必要上手實操一下。