抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

1. 引入依赖

1.1 修改pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
<!-- mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<!-- Mybatis -->
<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);
}
}

评论