如何使用分页?
可以在controller 层或者在 serviceimpl调用 只需要调用 page.setRecords 就可以把数据分页 (强烈建议在serviceimpl实现,有些写在controller会无法分页)
![](https://i-blog.csdnimg.cn/blog_migrate/2492104b119b269d1c8c2de87a0c7d26.png)
对应的service
Page<User> selectUserPage(Page<User> page);
对应的serviceimpl (这两个方法都是自己写的Mapper.xml sql语句,用户对应角色多对多关系 )
![](https://i-blog.csdnimg.cn/blog_migrate/e1a5190c8a629f4802739f14f9206c38.png)
mapper (查询出来的是User 的pojo信息 所以被List封装,参数Page并没有用到)
![](https://i-blog.csdnimg.cn/blog_migrate/2b9885e9d2136dc6c4b14dbf2e9f48a0.png)
sql查询语句
![](https://i-blog.csdnimg.cn/blog_migrate/80a7e8f3a09216f1e43650c082e04330.png)
注:如果返回的是分页,但是想返回list 就在后面
getRecords() 返回的就是list<>了
Mybatis-plus 已封装好的方法
注释:User 为pojo
插入
一般只用到第一个
insert
![](https://i-blog.csdnimg.cn/blog_migrate/cfa3b68ae39c0078d38963b71b577f9f.png)
更新
一般用到: 第一个 和
updateById
![](https://i-blog.csdnimg.cn/blog_migrate/86aa0cfe9e6deb764446442aec6e347e.png)
删除
第一个根据条件删除
deleteById 根据id删除
![](https://i-blog.csdnimg.cn/blog_migrate/39916bdec1fefdf6af930ea228d71961.png)
查询
1分页:有两个方法
2正常查询 多用
selectById 和selectList
![](https://i-blog.csdnimg.cn/blog_migrate/2469c83ef7cce3a2fdb627ef818a883a.png)
二、带有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");