网站视频下载,wordpress建站实例,乐山市建设局网站,wordpress4.4.1下载1、查看项目中是否导入mybatisPlus的jar包 2、servie 层和实现类要集成mybatisPlus service 继承IService 实现类中要继承IService的实现类ServiceImplmapper,实体类 3、如果想要mapper中的一些方法#xff0c;mapper 要继承BaseMapper实体类 4、在实…1、查看项目中是否导入mybatisPlus的jar包 2、servie 层和实现类要集成mybatisPlus service 继承IService 实现类中要继承IService的实现类ServiceImplmapper,实体类 3、如果想要mapper中的一些方法mapper 要继承BaseMapper实体类 4、在实现类中实现方法不需要在xml中写一个方法了常用的方法
总结如下
【1】分页
参数1是分页起始位置一般是1参数2结束位置 一般都是前端传过来的查询的数量
PageLandLossAllowance page1 new PageLandLossAllowance(参数1,参数2);
LambdaQueryWrapperLandLossAllowance queryWrapper new LambdaQueryWrapper();
条件 eq 指的是相等
queryWrapper.eq(LandLossAllowance::getCountrySide,landLossAllowanceOption.getCountrySide());
执行page方法 page(参数1参数2)参数1上面的new的分页对象参数2是lambda表达式查询条件
IPageLandLossAllowance iPage page(page1, queryWrapper);一PageHelper和IPage区别
使用方法
PageHelper.startPage()然后后边写sql就可以。 紧接着的一个sql起作用。 IPage则需要在dao层传入IPage的实现类Page对象该对象实现了IPage。
区别 PageHelper内部原理是将传入的页码和条数赋值给了Page对象保存到了一个本地线程ThreadLoacl中然后会进入Mybatis的拦截器中。 然后再拦截器中获取本地线程中保存的分页的参数。最后再将这写分页参数和原本的sql以及内部定义好的sql进行拼接完成sql的分页处理。 中间会进行判断该sql 的类型是查询还是修改操作。如果是查询才会进入分页的逻辑并判断封装好的Page对象是否是nullnull则不分页否则分页。 IPage内部原理也是基于拦截器但是这个拦截的是方法以及方法中的参数这个也会判断是否是查询操作。如果是查询操作才会进入分页的处理逻辑。 进入分页逻辑处理后拦截器会通过反射获取该方法的参数进行判断是否存在IPage对象的实现类。如果不存在则不进行分页存在则将该参数赋值给IPage对象。 然后进行拼接sql的处理完成分页操作。 但是使用IPage需要注入一个bean拦截器交给spring进行管理。如下。否则不会进行拦截。 使用Ipage之后需要注入一些配置
Configuration
MapperScan(value{com.XX.**.mapper*})
public class MybatisPlusConfig {/*** 分页插件*/Beanpublic PaginationInterceptor paginationInterceptor() {// 设置sql的limit为无限制默认是500return new PaginationInterceptor().setLimit(-1);}
}二常用的lambda表达式的一些定义 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper是MybatisPlus框架构造查询条件常用的对象
使用lambda表达式写法更为清晰简洁 QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.lambda().eq(User::getName,aa);queryWrapper.lambda().ge(User::getAge,20);
默认情况下多个条件是and连接上述写法对应的SQL为where name like %aa% and age 20
如果要使用or连接的话方法如下
queryWrapper.lambda().and(wq-{wq.like(User::getName,aa);wq.or().like(User::getName,bb);
});
这里引申下我遇到的一个场景需要or连接的是一个集合内的所有元素
ListString nameList Lists.newArrayList(aa,bb,cc);
String firstName nameList.get(0);
nameList.remove(0);
queryWrapper.lambda().and(wq-{wq.like(User::getName,firstName);for(String name : nameList){wq.or().like(User::getName,name);}
});