1. 引入依赖
1.1 修改pom.xml
1 2 3 4 5 6 7 8 9 10 11 12
| <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency>
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency>
|
1.2 修改配置 application.yml
1 2 3
| mybatis: mapper-locations: classpath:mapping/*Mapper.xml type-aliases-package: com.summerain0.cloud.common.core.domain.entity
|
参数讲解
注意 mapper-locations 表示映射文件储存的地方,例如 classpath:mapping/*Mapper.xml 指代resources文件夹下mapping里所有Mapper.xml结尾的文件
type-aliases-package 是实体类所在的位置
自此,MyBatis的引入完成
2. 小小的例子
2.1 建立实体类
1 2 3 4 5 6 7 8 9 10 11
| import lombok.Data; import lombok.ToString;
@Data @ToString public class SysUser { private Integer id; private String username; private String password; private String nick; }
|
2.2 建立映射类
1 2 3 4
| @Repository public interface UserMapper { SysUser findById(int id); }
|
同时在resources的mapping文件里建立一个和映射类同名的xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?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.summerain0.cloud.system.mapper.UserMapper">
<resultMap id="SysUser" type="com.summerain0.cloud.common.core.domain.entity.SysUser"> <result column="id" jdbcType="INTEGER" property="id"/> <result column="username" jdbcType="VARCHAR" property="username"/> <result column="password" jdbcType="VARCHAR" property="password"/> <result column="nick" jdbcType="VARCHAR" property="nick"/> </resultMap>
<select id="findById" resultType="com.summerain0.cloud.common.core.domain.entity.SysUser"> select * from sys_user where id = #{id} </select>
</mapper>
|
2.3 建立测试方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public interface UserService { SysUser findById(int id); }
@Service public class IUserService implements UserService { private UserMapper userMapper;
@Override public SysUser findById(int id) { return userMapper.findById(id); }
@Autowired public void setUserMapper(UserMapper userMapper) { this.userMapper = userMapper; } }
|
2.4 提供接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @RestController public class TestController { private IUserService userService;
@RequestMapping("/test") public String test() { return userService.findById(3).toString(); }
@Autowired public void setUserService(IUserService userService) { this.userService = userService; } }
|
2.5 测试结果
运行结果
3. 常见问题
3.1 找不到Mapper?
在启动类加入@MapperScan(“com.summerain0.cloud.system.mapper”)即可
1 2 3 4 5 6 7
| @MapperScan("com.summerain0.cloud.system.mapper") @SpringBootApplication public class CloudApplication { public static void main(String[] args) { SpringApplication.run(CloudApplication.class, args); } }
|