SpringBoot整合Mybatis-plus
# 简介
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
# 引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
1
2
3
4
5
2
3
4
5
# 配置文件
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&useSSL=FALSE
username: root
password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
# mybatis-plus相关配置
mybatis-plus:
# xml扫描
mapper-locations: classpath:mapper/*.xml
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 AUTO:"数据库ID自增"
id-type: auto
#字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断"
field-strategy: NOT_EMPTY
#数据库类型
db-type: MYSQL
configuration:
# 是否开启自动驼峰命名规则映射
map-underscore-to-camel-case: true
# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
call-setters-on-nulls: true
# sql打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
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
33
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
33
# 启动类
@SpringBootApplication
@MapperScan("com.demo.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 定义表的实体
@TableName("users")
@Data
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String userName;
private String passWord;
private String nickName;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# Mapper层
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.domain.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# Service层
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.domain.User;
public interface UserService extends IService<User>{
public void saveUser(User user);
List<User> getUserList(User user);
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
实现类
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
@Service
public class UserServiceImpl implements UserService {
public void saveUser(User user) {
save(user);
}
@Override
public List<User> getUserList(User user) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getNickName,"jack");
return getBaseMapper().selectList(queryWrapper);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mybatis-plus 只是mybatis的增强版,它不影响mybatis的使用,我们可以写我们自定的方法以及sql,接下来我们看一个例子:
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> getList(@Param("user") User user);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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.demo.dao.UserMapper" >
select * from Users
<where>
<if test="user.userName != null">
and user_name = #{user.userName}
</if>
</where>
</mapper>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
温馨提示:xml第一行不要有空行,否则会报错。
# 总结
今天只是使用 SpringBoot 整合 Mybatis-plus 的初级教程,后续还会更新一些高级用法。
上次更新: 2024/01/30, 15:08:57