0,若依官网
1,分页startPage(),后面紧跟着的 sql 才会执行分页。
参考:https://blog.csdn.net/fangjial/article/details/129829716
1.PageHelper.startPage () 必须加在执行查询sql语句方法之前。如若不然,会导致数据库查询时,分页失效。
2.return返回的对象,必须是startPage()的下一行代码返回的对象。如若不然,会导致返回的结果,丢失当前页,总页数,总条数等数据。
3.若使用mysql版本高于5.6,或postgresql是高版本,且排序字段不唯一,分页时则会出现重复数据。
针对问题三建议解决方案为:在排序时,添加唯一排序字段,并重写若依的startPage()方法,改为如下代码。其中,userId唯一。
startPage()
Product product= new Product();
List list = productService.selectProductList(product);
2,获取当前用户的角色
LoginUser loginUser= this.getLoginUser();
SysUser sysUser = loginUser.getUser();
List<SysRole> list= sysUser.getRoles();
3, stream 从list集合中查找是否存在某个值
参考:https://blog.csdn.net/qq_52545155/article/details/125976899
Boolean flag=list.stream().filter(sysRole -> "businessAdmin".equals(sysRole.getRoleKey())).findAny().isPresent();//
4, stream遍历 list,生成新的list
List<EProduct> products=eProductService.selectEProductList(eProduct);//有分页能力的
List<EUserProduct> listUp=products.stream().map(product->{
EUserProduct eUserProduct= new EUserProduct();
eUserProduct.setProductId(product.getId());
eUserProduct.setProductName(product.getName());
eUserProduct.setUnit(product.getUnit());
eUserProduct.setGoodsCode(product.getGoodsCode());
eUserProduct.setSupplier(product.getSupplier());
return eUserProduct;
}).collect(Collectors.toList());
5,spring @Transactional不生效的可能原因
1,如果方法中抛出的异常不是RuntimeException(或其子类),@Transactional可能不会起作用。确保你的业务方法中抛出的异常是继承自RuntimeException。 2,不能加在 controller 方法里,必须加在 service 方法里。
6, logback-spring.xml获取application.properties中的变量
https://blog.csdn.net/qq78442761/article/details/109324877
7.QueryWrapper用法,mybatis
https://www.cnblogs.com/P710078255/p/17782353.html
queryWrapper.lt()——小于
queryWrapper.le()——小于等于
queryWrapper.gt()——大于
queryWrapper.ge()——大于等于
queryWrapper.eq()——等于
queryWrapper.ne()——不等于
queryWrapper.betweeen(“age”,10,20)——age在值10到20之间
queryWrapper.notBetweeen(“age”,10,20)——age不在值10到20之间
queryWrapper.like(“属性”,“值”)——模糊查询匹配值‘%值%’
queryWrapper.notLike(“属性”,“值”)——模糊查询不匹配值‘%值%’
queryWrapper.likeLeft(“属性”,“值”)——模糊查询匹配最后一位值‘%值’
queryWrapper.likeRight(“属性”,“值”)——模糊查询匹配第一位值‘值%’
queryWrapper.isNull()——值为空或null
queryWrapper.isNotNull()——值不为空或null
queryWrapper.in(“属性”,条件,条件 )——符合多个条件的值
queryWrapper.notIn(“属性”,条件,条件 )——不符合多个条件的值
queryWrapper.or()——或者
queryWrapper.and()——和
queryWrapper.orderByAsc(“属性”)——根据属性升序排序
queryWrapper.orderByDesc(“属性”)——根据属性降序排序
queryWrapper.inSql(“sql语句”)——符合sql语句的值
queryWrapper.notSql(“sql语句”)——不符合SQL语句的值
queryWrapper.esists(“SQL语句”)——查询符合SQL语句的值
queryWrapper.notEsists(“SQL语句”)——查询不符合SQL语句的值
2、wrapper完整的方法顺序图
查询方式 说明
setSqlSelect 设置 SELECT 查询字段
where WHERE 语句,拼接 + WHERE 条件
and AND 语句,拼接 + AND 字段=值
andNew AND 语句,拼接 + AND (字段=值)
or OR 语句,拼接 + OR 字段=值
orNew OR 语句,拼接 + OR (字段=值)
eq 等于=
allEq 基于 map 内容等于=
ne 不等于<>
gt 大于>
ge 大于等于>=
lt 小于<
le 小于等于<=
like 模糊查询 LIKE
notLike 模糊查询 NOT LIKE
in IN 查询
notIn NOT IN 查询
isNull NULL 值查询
isNotNull IS NOT NULL
groupBy 分组 GROUP BY
having HAVING 关键词
orderBy 排序 ORDER BY
orderAsc ASC 排序 ORDER BY
orderDesc DESC 排序 ORDER BY
exists EXISTS 条件语句
notExists NOT EXISTS 条件语句
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
addFilter 自由拼接 SQL
last 拼接在最后,例如:last(“LIMIT 1”)
————————————————
版权声明:本文为CSDN博主「victerXu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59835914/article/details/129527290