MP入门程序
- 创建配置有MySQL的的springboot项目(不要导入mybatis)
- 添加MPbootstarter依赖3.4.1
- datasource
- dao继承BaseMapper
- end
@test
- insert,deletebyid(...L),updata(null不修改),selectbyid,
- 添加lombok依赖 @data(包括tostring和hash equal)@Allarg...
分页查询
- 配置分页拦截器
@Configuration
config.MPConfig
@bean
a=new Mybatisplusinterceptor
a.addInnerInterceptor(new PaginationInnerInterceptor());
return a;
- new page(current:1,size:2);//第一页,每页2条
- dao.selectPage(page,null);
- page.getxxx
- selectPage(page)
打印日志查看sql:配置mp.log-impl=std
limt 3,3 从3开始取3个
动态sql
组合条件查询
- 取消日志:通过新建空的logback.xml,yml中banner为false
- qw=new QueryWrapper();
- qw.lt(less than) ("age",18);
- qw=new QueryWrapper
();
qw.lambda.lt(User::getAge,18); - LambdaQueryWrapper lqw = new ...<>
lqw.lt(User::...)
.gt();(and)
lqw.lt(User::...).or().gt();(or)
- null判断(范围并不一定有上下限)
domain.query.UserQuery
``
@data
public...extends User{
age2;
}
lqw.lt(null!=nq.getAge2(),User::getAge,uq.getAge2());
``
查询字段控制
选择列:lqw.select(User::getId,User::getName)//只有id和name列
列数:
lqw.select("count(*) as count,gender");
lqw.groupBy("gender");
List<Map<String,object>> userList = userdao.selectMaps(lqw)
在userdao中设置添加了注解的方法
查询条件
- eq().eq()
- allEq()
- 大小 lt le gt ge (less than equals greater) between(meth,10,30);
- like (meth,"J") likeLeft==>%J
- 更多字段
字段名映射
- 别名:@TableField(value = "pwd")
- 不需要的字段:TableField(exist=false)
- 不查询的字段(密码):@(...,select=false)
- 表名:@(TableName="tb1_name")