在 Spring Boot 2 中使用 MyBatis 是一个相对简单的过程。MyBatis 是一个持久层框架,它使 Java 对象与 SQL 数据库之间的映射变得简单。以下是如何在 Spring Boot 2 中集成 MyBatis 的详细步骤,包括示例代码。
1. 建立 Spring Boot 项目
您可以使用 Spring Initializr 创建一个新的 Spring Boot 项目,选择的依赖项包括:
- Spring Web
- MyBatis Framework
- MySQL Driver(或您使用的任何数据库驱动)
2. 添加 Maven 依赖
在您的 pom.xml
中添加以下依赖项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
|
确保您使用的 MyBatis 版本与您的 Spring Boot 版本兼容。
3. 配置数据源
在 src/main/resources/application.properties
中配置数据库连接信息:
1 2 3 4 5 6 7 8 9
| spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.model
|
替换 your_database
、your_username
和 your_password
为您的数据库信息。
4. 创建数据库表
假设我们有一个简单的用户表,您可以通过以下 SQL 语句创建数据库表:
1 2 3 4 5
| CREATE TABLE users ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL, password VARCHAR(100) NOT NULL );
|
5. 创建实体类
在 src/main/java/com/example/demo/model
目录下创建 User
实体类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| package com.example.demo.model;
public class User { private Long id; private String username; private String password;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
|
6. 创建 Mapper 接口
在 src/main/java/com/example/demo/mapper
目录下创建 UserMapper
接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package com.example.demo.mapper;
import com.example.demo.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 users") List<User> findAll();
@Select("SELECT * FROM users WHERE id = #{id}") User findById(Long id); }
|
7. 创建 Service 类
在 src/main/java/com/example/demo/service
目录下创建 UserService
类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package com.example.demo.service;
import com.example.demo.mapper.UserMapper; import com.example.demo.model.User; import org.springframework.stereotype.Service;
import java.util.List;
@Service public class UserService { private final UserMapper userMapper;
public UserService(UserMapper userMapper) { this.userMapper = userMapper; }
public List<User> getAllUsers() { return userMapper.findAll(); }
public User getUserById(Long id) { return userMapper.findById(id); } }
|
8. 创建 Controller 类
在 src/main/java/com/example/demo/controller
目录下创建 UserController
类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package com.example.demo.controller;
import com.example.demo.model.User; import com.example.demo.service.UserService; import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController @RequestMapping("/users") public class UserController { private final UserService userService;
public UserController(UserService userService) { this.userService = userService; }
@GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); }
@GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } }
|
9. 运行应用
确保数据库已启动并且配置正确,您可以通过以下命令运行应用:
10. 测试 API
您可以使用 Postman 或浏览器访问以下 URL 来测试 API:
- 获取所有用户:
GET http://localhost:8080/users
- 根据 ID 获取用户:
GET http://localhost:8080/users/{id}
11. 使用 XML 映射文件(可选)
如果您更喜欢使用 XML 文件来定义 SQL 映射,您可以在 src/main/resources/mapper
目录下创建一个 UserMapper.xml
文件:
1 2 3 4 5 6 7 8 9
| <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="findAll" resultType="com.example.demo.model.User"> SELECT * FROM users </select>
<select id="findById" parameterType="Long" resultType="com.example.demo.model.User"> SELECT * FROM users WHERE id = #{id} </select> </mapper>
|
然后,更新 UserMapper
接口:
1 2 3 4 5 6 7 8 9 10 11 12
| package com.example.demo.mapper;
import com.example.demo.model.User; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper public interface UserMapper { List<User> findAll(); User findById(Long id); }
|