Spring Boot集成MyBatis:从零开始快速上手
1. 添加依赖
在pom.xml
文件中添加MyBatis和数据库驱动的依赖。以MySQL为例:
<dependencies>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Starter MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version> <!-- 请根据需要选择合适的版本 -->
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Spring Boot Starter Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2. 配置数据源
在application.yml
或application.properties
文件中配置数据源和MyBatis的相关信息。
application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
username: your_username
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: com.yourpackage.model
configuration:
map-underscore-to-camel-case: true
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mappers/*.xml
mybatis.type-aliases-package=com.yourpackage.model
mybatis.configuration.map-underscore-to-camel-case=true
3. 创建实体类(Entity)
根据数据库表结构创建对应的实体类。例如,有一个User
表:
package com.yourpackage.model;
public class User {
private Integer id;
private String name;
private Integer age;
// Getters and Setters
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
4. 创建Mapper接口
创建一个Mapper接口,定义数据库操作方法。例如:
package com.yourpackage.mapper;
import com.yourpackage.model.User;
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> getAllUsers();
}
你也可以使用XML文件来定义SQL语句,而不是注解。
5. 创建Mapper XML文件(可选)
如果使用XML文件定义SQL语句,创建mappers/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">
<mapper namespace="com.yourpackage.mapper.UserMapper">
<select id="getAllUsers" resultType="com.yourpackage.model.User">
SELECT * FROM user
</select>
</mapper>
6. 创建Service层(可选)
创建Service层来处理业务逻辑。例如:
package com.yourpackage.service;
import com.yourpackage.model.User;
import com.yourpackage.mapper.UserMapper;
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> getAllUsers() {
return userMapper.getAllUsers();
}
}
7. 创建Controller层
创建Controller层来处理HTTP请求。例如:
package com.yourpackage.controller;
import com.yourpackage.model.User;
import com.yourpackage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
}
8. 启动项目
运行Spring Boot应用程序,访问http://localhost:8080/users
,即可看到从数据库中查询到的用户数据。
9. 注意事项
-
版本兼容性:确保MyBatis和Spring Boot的版本兼容。
-
事务管理:如果需要事务管理,可以在Service层方法上添加
@Transactional
注解。 -
日志配置:可以通过配置日志级别来查看MyBatis的SQL执行情况。例如,在
application.properties
中添加以下配置:
logging.level.org.apache.ibatis=DEBUG
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步