mybatis-plus封装的方法使用

如何使用分页?

可以在controller 层或者在 serviceimpl调用 只需要调用 page.setRecords 就可以把数据分页 (强烈建议在serviceimpl实现,有些写在controller会无法分页)
对应的service

Page<User> selectUserPage(Page<User> page);
对应的serviceimpl (这两个方法都是自己写的Mapper.xml sql语句,用户对应角色多对多关系 )

mapper (查询出来的是User 的pojo信息 所以被List封装,参数Page并没有用到)
sql查询语句

注:如果返回的是分页,但是想返回list 就在后面 getRecords() 返回的就是list<>了


Mybatis-plus 已封装好的方法
注释:User 为pojo
插入
一般只用到第一个 insert
更新
一般用到: 第一个 和 updateById
删除
第一个根据条件删除
deleteById 根据id删除

查询
1分页:有两个方法

2正常查询 多用 selectById 和selectList


二、带有Wrapper的都是可以增加条件的
使用规则:
增加条件只能增加where之后的
group by虽然有封装的方法,但是不推荐
还有关联表查询不能用,只能是当前pojo对应的表

经常使用的条件有:
.eq( "id" , 10 ) 字段,参数 查出对应条件
.ge( "id" , 10) 字段 参数 包括10 之 的所有
.gt("id",10) 字段 参数 不包括10 之 的所有
.le( "id" , 10) 字段 参数 包括10 之 的所有
.lt("id",10) 字段 参数 不包括10 之 的所有
.in("id",值(或者集合或数组)) 和普通in方法相同
.like( "name" , "q" )
. between( "id" , 10 , 15) 字段 开始区间,结束区间 包左包右
.notbetween 不解释 了
.setSqlSelect( "age" ) 查询指定字段
.setSqlSelect( "name,age" ) 指定多个字段(


.where("id={0}",52) 正常应该这样写 但是为了方便 可以忽略第二个参数直接写个sql条件即可
.where( "id=52" )

.or( "id=1" )
.and( "id=1" )

不常用的
. ne( "age" , 20 ) age 20> 同时 20<
.exists()根据这个条件判断 如果为true 默认返回所有行的所有字段
.group by() 因为group 基本要和函数一起使用 所以不建议用
.having()

还有一些notlike notexists 等很好理解的就没放上去


可以进行一些稍复杂一点的逻辑
如:
查询id字段或者age字段包括1的
.like( "id" , "1" ).or().like( "age" , "1" )

最后是 网上的一些示例
.where("name={0}", "'zhangsan'").and("id=1") .orNew("status={0}", "0").or("status=1") .notLike("nlike", "notvalue") .andNew("new=xx").like("hhh", "ddd") .andNew("pwd=11").isNotNull("n1,n2").isNull("n3") .groupBy("x1").groupBy("x2,x3") .having("x1=11").having("x3=433") .orderBy("dd").orderBy("d1,d2");



  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行善事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值