MyBatis与Spring Boot集成
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Spring Boot是一个快速开发基于Spring框架的应用程序的脚手架,它简化了配置和部署过程。将MyBatis与Spring Boot集成可以让我们更加方便地开发持久层代码。
本文将介绍如何将MyBatis与Spring Boot集成。
- 添加依赖
在pom.xml文件中添加spring-boot-starter-jdbc依赖以连接数据库,添加mybatis-spring-boot-starter依赖来连接Spring Boot和MyBatis,构建基于Spring Boot的MyBatis应用程序。此外,你可能需要lombok插件简化Java代码。
<dependencies>
<!-- Spring Boot Jdbc Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- MyBatis Spring Boot Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
- 配置数据源
在application.properties或application.yml文件中配置数据源的相关信息,如数据库URL、用户名和密码等。例如:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 配置MyBatis
在application.properties或application.yml文件中配置MyBatis的相关属性,如Mapper文件的位置等。例如:
mybatis.mapper-locations=classpath:mapper/*.xml
- 创建Mapper接口和映射文件
Mapper接口定义了对数据库的操作方法,其方法和参数需要与SQL语句中的占位符一致。映射文件则存放了具体的SQL语句。例如:
UserMapper.java:
public interface UserMapper {
List<User> findAll();
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<map namespace="com.example.demo.mapper.UserMapper">
<select id="findAll" resultType="com.example.demo.entity.User">
SELECT * FROM user;
</select>
</map>
- 在Service或Controller中注入Mapper接口并调用其方法,来完成对数据库的操作。例如:
UserServiceImpl.java:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.findAll();
}
}
注意:本文归作者所有,未经作者允许,不得转载