文章目录
- Spring Boot 整合 MyBatis 详细教程
- 简介
- 环境准备
- 项目搭建
- 项目结构
- 配置项目
- 1. `pom.xml` 配置
- 2. `数据源和 MyBatis` 配置
- 3. `启动类`配置
- 4. `Mapper 接口`和 `XML 映射文件`
- 测试
- 总结
Spring Boot 整合 MyBatis 详细教程
简介
Spring Boot 与 MyBatis 的整合可以让你轻松地构建数据访问层,通过简化配置和自动配置功能,使得开发者可以更加专注于业务逻辑的实现。本文将详细介绍如何在 Spring Boot 项目中整合 MyBatis。
环境准备
- JDK 1.8 或更高版本
- Spring Boot 2.x
- MyBatis 2.x
- MySQL 数据库
项目搭建
- 新建项目:在 IntelliJ IDEA 中,选择
File -> New -> Project
,选择Spring Initializr
,配置 JDK 环境为 1.8。 - 添加依赖:选择
Spring Web
、MyBatis Framework
和MySQL Driver
作为项目依赖。
项目结构
配置项目
1. pom.xml
配置
在 pom.xml
文件中添加以下依赖:
修改springboot的版本为2.5.9以及添加mysql,mybatis相关依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--德鲁伊连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2. 数据源和 MyBatis
配置
在 application.properties
或 application.yml
文件中配置数据源和 MyBatis:
#DB Configuration:
spring:
#连接池配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/advdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
initial-size: 1 #连接池初始大小
max-active: 20 #连接池中最大的活跃连接数
min-idle: 1 #连接池中最小的活跃连接数
max-wait: 60000 #配置获取连接等待超时的时间
pool-prepared-statements: true #打开PSCache,并且指定每个连接上PSCache的大小
max-pool-prepared-statement-per-connection-size: 20
validation-query: SELECT 1 FROM DUAL
validation-query-timeout: 30000
test-on-borrow: false #是否在获得连接后检测其可用性
test-on-return: false #是否在连接放回连接池后检测其可用性
test-while-idle: true #是否在连接空闲一段时间后检测其可用性
#spring集成Mybatis环境
#pojo别名扫描包
#加载Mybatis映射文件
mybatis:
mapper-locations: classpath:mapper/*Mapper*.xml
type-aliases-package: com.fs.pojo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server:
port: 8080
3. 启动类
配置
在启动类上添加 @MapperScan
注解,指定 mapper 接口的位置:
@SpringBootApplication
@MapperScan("com.fs.mapper")
public class SpringBootSsmApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootSsmApplication.class, args);
}
}
4. Mapper 接口
和 XML 映射文件
创建 Mapper 接口和相应的 XML 映射文件。例如,创建 UserMapper
接口和 UserMapper.xml
:
public interface UserMapper {
List<User> selectAll();
}
<mapper namespace="com.fs.mapper.UserMapper">
<select id="selectAll" resultType="com.example.entity.User">
SELECT * FROM user
</select>
</mapper>
测试
编写测试代码来验证 MyBatis 整合是否成功:
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserMapper userMapper;
@GetMapping
public List<User> findAll() {
return userMapper.selectAll();
}
}
启动应用并访问 http://localhost:8080/user,如果能够看到数据库中的用户列表,说明整合成功。
总结
通过以上步骤,你可以在 Spring Boot 项目中成功整合 MyBatis,实现对数据库的访问和操作。Spring Boot 的自动配置和 MyBatis 的灵活性使得开发更加高效和简单。