要在Spring Boot中整合MyBatis和MySQL,你需要完成以下步骤:
- 创建Spring Boot项目
- 添加依赖
- 配置数据源
- 配置MyBatis
- 创建Mapper和实体类
- 编写Mapper XML文件
- 测试
1. 创建Spring Boot项目
使用Spring Initializr创建一个新的Spring Boot项目,选择以下依赖:
- Spring Web
- MyBatis Framework
- MySQL Driver
2. 添加依赖
在pom.xml
中添加必要的依赖,如果使用的是Maven,添加以下依赖:
<dependencies> <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>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>
3. 配置数据源
在src/main/resources
目录下创建或修改application.yml
文件,添加MySQL数据库配置:
spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: your_username password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.demo.model
4. 配置MyBatis
在src/main/resources
目录下创建mapper
文件夹,用于存放Mapper XML文件。
5. 创建Mapper和实体类
在src/main/java/com/example/demo/model
目录下创建实体类,例如User
:
package com.example.demo.model; public class User { private Long id; private String username; private String password; // getters and setters }
在src/main/java/com/example/demo/mapper
目录下创建Mapper接口,例如UserMapper
:
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 user") List<User> findAll(); @Select("SELECT * FROM user WHERE id = #{id}") User findById(Long id); }
6. 编写Mapper XML文件
在src/main/resources/mapper
目录下创建对应的Mapper XML文件,例如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.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.model.User"> <id column="id" property="id" jdbcType="BIGINT"/> <result column="username" property="username" jdbcType="VARCHAR"/> <result column="password" property="password" jdbcType="VARCHAR"/> </resultMap> <select id="findAll" resultMap="BaseResultMap"> SELECT * FROM user </select> <select id="findById" parameterType="java.lang.Long" resultMap="BaseResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper>
7. 测试
创建一个控制器来测试上述配置。 在src/main/java/com/example/demo/controller
目录下创建UserController
:
package com.example.demo.controller; import com.example.demo.mapper.UserMapper; import com.example.demo.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; 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 UserMapper userMapper; @GetMapping public List<User> getAllUsers() { return userMapper.findAll(); } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userMapper.findById(id); } }
8. 启动应用程序
运行Spring Boot应用程序并访问http://localhost:8080/users
来获取所有用户,或访问http://localhost:8080/users/{id}
来获取特定用户。
关键点总结
依赖配置:确保pom.xml中包含了MyBatis和MySQL的依赖。
数据源配置:在application.yml中正确配置数据源。
Mapper接口和XML文件:定义Mapper接口并创建对应的XML文件以进行SQL映射。
实体类和控制器:创建实体类和控制器以测试MyBatis和MySQL的集成。