springboot快速集成mybatis-plus的详细教程
作者:子_轩 时间:2021-06-11 22:05:16
简介Mybatis-Plus(简称MP)
是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。
springBoot快速集成mybatis-plus
一、pom文件引入mybatis-plus依赖
<dependencies>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<!---test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
注:
这里最主要的是mybatis-plus-boot-starter依赖,其他依赖都是基本的
二、基础配置 application.properties
#mysql数据库
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/springbootdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= 111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
#开启驼峰
mybatis.configuration.map-underscore-to-camel-case=true
#打印日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis-plus配置
mybatis-plus.mapper-locations=classpath*:/mappers/*.xml
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
mybatis-plus.global-config.id-type=0
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
mybatis-plus.global-config.field-strategy= 1
#驼峰下划线转换
mybatis-plus.global-config.db-column-underline=true
三、MybatisPlusConfig
/**
* MybatisPlus配置类
*/
@EnableTransactionManagement
@Configuration
@MapperScan(basePackages = "com.example.demo.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
四、测试
实体类 主键使用@TableId(value = "id",type = IdType.AUTO)
指定类型@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。
@Data
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 创建时间
*/
private Date createDate;
/**
* 更新时间
*/
private Date updateDate;
/**
* sys_user
*/
}
新建SysUserMapper继承 BaseMapper
public interface SysUserMapper extends BaseMapper<SysUser> {
}
测试
@Autowired
private SysUserMapper sysUserMapper;
/**
* 插入
*/
@Test
public void insert() {
SysUser sysUser=new SysUser();
sysUser.setPhone("18787878787");
sysUser.setPassword("123456");
sysUser.setUsername("root");
sysUser.setCreateDate(new Date());
sysUser.setUpdateDate(new Date());
sysUserMapper.insert(sysUser);
}
/**
* 分页查询
*/
@Test
public void selectByPage() {
Page<SysUser> page=new Page(1,1);
IPage p= sysUserMapper.selectPage(page,new QueryWrapper<SysUser>().eq("password","123456"));
System.out.println(p.getRecords());
}
分页一般使用
List<ApiLogVO> getCallLogList(ApiLogDTO dto, Page page); mapper
IPage<ApiLogVO> getCallLogList(ApiLogDTO dto); IService
serviceImpl
@Override
public IPage<ApiLogVO> getCallLogList(ApiLogDTO dto) {
Page<ApiLogVO> page=new Page(dto.getCurrent(),dto.getSize());
List<ApiLogVO>list= apiLogMapper.getCallLogList(dto,page);
page.setRecords(list);
return page;
}
controller
@PostMapping("/call/log")
@ApiOperation("api调用日志列表")
public IPage<ApiLogVO> callLog(@ModelAttribute ApiLogDTO dto){
return sysService.getCallLogList(dto);
}
附上目录结构
来源:https://blog.csdn.net/qq_37209293/article/details/93617460
标签:springboot,mybatis-plus
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java使用Hutool实现AES、DES加密解密的方法
2021-06-03 16:49:57
Mybatis中的常用OGNL表达式
2023-09-29 10:48:33
![](https://img.aspxhome.com/file/2023/8/63068_0s.png)
SpringDataMongoDB多文档事务的实现
2023-11-25 06:37:55
log4j2日志异步打印(实例讲解)
2023-11-12 09:02:13
JDBC基础教程
2021-10-26 03:47:09
举例说明Java设计模式编程中ISP接口隔离原则的使用
2023-11-20 11:07:40
![](https://img.aspxhome.com/file/2023/7/59517_0s.jpg)
浅析Java中的内存泄漏
2023-12-19 02:29:02
![](https://img.aspxhome.com/file/2023/3/70993_0s.jpg)
RocketMQ生产者调用start发送消息原理示例
2022-07-05 20:13:04
![](https://img.aspxhome.com/file/2023/2/63692_0s.png)
java使用OGEngine开发2048
2023-07-23 06:07:43
详解AngularJs与SpringMVC简单结合使用
2023-10-22 04:19:08
java 中模式匹配算法-KMP算法实例详解
2022-01-30 09:08:08
![](https://img.aspxhome.com/file/2023/7/63807_0s.jpg)
Spring Boot 定义系统启动任务的多种方式
2023-11-24 13:25:33
![](https://img.aspxhome.com/file/2023/7/61947_0s.png)
C#异步调用实例小结
2023-07-16 10:31:03
Java简单计时的实现案例(可以用来限时循环)
2023-02-01 21:39:19
Flutter 队列任务的实现
2023-07-07 17:25:14
mybatis的if判断integer问题
2022-12-23 20:15:41
C#索引属性用法实例分析
2023-02-02 14:15:19
Android按钮单击事件的四种常用写法总结
2023-07-15 09:05:18
springboot整合shiro与自定义过滤器的全过程
2023-11-24 21:02:40
Java异常处理try catch的基本使用
2023-11-24 05:04:38