Spring Boot 整合MyBatis实现数据访问
将 Spring Boot 与 MyBatis 整合可以简化数据访问层的开发,同时利用 Spring Boot 的自动配置和 MyBatis 的强大功能。以下是一个简单的步骤指南,教你如何在 Spring Boot 项目中整合 MyBatis:
Step 1: 创建 Spring Boot 项目
可以使用 Spring Initializr 来创建一个新的 Spring Boot 项目。在项目中选择以下依赖项:
- Spring Web
- MyBatis Framework
- MySQL Driver (或者你正在使用的数据库)
Step 2: 添加 Maven 依赖
如果没有通过 Spring Initializr 添加依赖,你可以在 pom.xml
中手动添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<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>3.0.0</version> <!-- 确保使用最新版本 -->
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version> <!-- 确保使用与你的MySQL兼容的版本 -->
</dependency>
Step 3: 配置数据库连接
在 src/main/resources/application.properties
或 application.yml
中配置数据库连接信息:
application.properties 示例
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_database_username
spring.datasource.password=your_database_password
mybatis.mapper-locations=classpath*:mapper/*.xml
application.yml 示例
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database_name
username: your_database_username
password: your_database_password
mybatis:
mapper-locations: classpath*:mapper/*.xml
Step 4: 创建实体类
假设你有一个 User
表,可以创建相应的实体类:
public class User {
private Long id;
private String name;
private String email;
// Getters and Setters
}
Step 5: 创建 Mapper 接口和 XML 文件
UserMapper.java
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("SELECT * FROM User")
List<User> findAll();
}
mapper/UserMapper.xml
确保在 resources/mapper
目录下创建 XML mapper 文件(如果你想用 XML 配置)。
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findAll" resultType="com.example.demo.entity.User">
SELECT * FROM User
</select>
</mapper>
Step 6: 创建 Service 和 Controller
实现业务逻辑并设置 REST 控制器来调用数据访问层。
UserService.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsers() {
return userMapper.findAll();
}
}
UserController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getUsers() {
return userService.getUsers();
}
}
Step 7: 运行应用程序
使用 Spring Boot
的 main
方法启动应用程序。确保你的 MySQL 数据库正在运行并且与你的配置相匹配。
通过访问 http://localhost:8080/users
,你应该能够看到用户列表的 JSON 响应。
通过这些步骤,你已成功集成 Spring Boot 和 MyBatis,实现了一个基本的数据访问流程。进一步的功能如事务管理和更复杂的查询构建,可以根据需要增加和配置。