日期:2022年2月24日
出处:
黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)
正文
Mybatis-Plus条件查询
在users表中username有“h”的查询出来
@Test
//按条件查询
void testGetBy1() {
QueryWrapper<Users> qw = new QueryWrapper<>();
qw.like("username","h");
bookDao.selectList(qw);
}
但是以上的代码是不完整的,有bug,有一种情况是当username = null时会有误操作
它会将“null”作为字段来查询
所以应该加以步判断,完整代码:
@Test
//按条件查询
void testGetBy2() {
String username = "o";
LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>();
lqw.like(username !=null,Users::getUsername,username);
bookDao.selectList(lqw);
}
查询结果实现分页操作——Mybatis-Plus拦截器
编写一个类来实现拦截操作
package com.ssmp.springboot_smmp.config;
/*MP的拦截器(固定格式)*/
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//相当于交给Spring管理了一个Bean
@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());//具体的拦截器
return interceptor;
}
}
在测试类中的代码:
@Test
//分页
void testGetPage() {
//展示第2页,每页5条数据
IPage page = new Page(2,5);
bookDao.selectPage(page,null);
}
如何开启Mybatis-Plus运行日志
在.yml配置文件中添加如下配置
//开启MP运行日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
实体类快速开发——lombok
在pow.xml配置文件中的坐标
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
作用:简化实体类代码的编写
package com.ssmp.springboot_smmp.domain;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
//lombok
//@Getter
//@Setter
@Data
//为当前实体类在编译期设置对应的get/set方法,toString方法,hashCode方法,equals方法等
public class Users {
private Integer id;
private String username;
private String password;
}
整合Mybatis和整合Mybatis-Plus之间的区别
Mybatis是通过sql语句来锁定数据库中的表的
所以在实体类中的命名可以任意
而Mybatis-Plus是通过实体类的命名来锁定是数据库中的那个表的
名称不一致就会报错
修改和数据库表名一致之后测试成功
并且不区分大小写
发现问题及解决方案
解决方案如下图:
总结
在学习SpringBoot整合SSMP的过程中,学到了一些开发时通用的细节操作,比如lobok,@Data注解等等,最大的收获就是通多对比整合Mybatis和MP对他们之间的联系与区别有了很深的体会