【Snippet】若依框架后台一些代码,springboot

0,若依官网

https://doc.ruoyi.vip/ruoyi/

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
end