1. 构建warpper
QueryWrapper<DemoClass> queryWrapper = new ArafQueryWrapper<>();
queryWrapper.lambda().eq(DemoClass::getName, OtherClass.getName());
2.return; 的使用
return; 在方法中使用只会结束当前方法,调用此方法的方法将会继续执行!
3.单元测试建立xls表格存放数据时
最快速的方法,通过IDEA连接数据库,使用select语句查询出数据,然后将查询出的数据导出为xls表格文件
4.循环依赖的解决方法
1.找出循环依赖类调用的方法,可以将方法单独写一个类,放进去,重新调用新类
2.加入@Lazy的Springboot注解标签,懒加载(只需在其中一个类上加即可)
5.数据库表查询没反应
查看数据库后台是否有执行的任务没有执行完。
6.postman 发起Date类型的请求
请求接口:http://localhost:8080/report/audit/dom
请求参数:(Date类型) processingYear = 2020/09/09 11:20:20
,只输入年份也行 2020/02/01
7.ORCAL数据库,mapper文件中写SQL语句,模糊查询like的使用方法
使用 || 拼接like后面的字符串
like #{变量名} || '%'
8.删除代码(尽量避免删除代码,比如注解,代码等等)
注意,要去掉一个注解的时候,要考虑到是否还有其他类在调用该方法。
@Cacheable(cacheNames = CacheNames.HOUR_24, cacheManager = OwbCacheManager.CAFFEINE)
public String getXXX(){
//do something!
return result;
}
若有很多类都在调用这个方法,直接去掉缓存注解的措施太极端了。更好的处理方法如下:
@Cacheable(cacheNames = CacheNames.HOUR_24, cacheManager = OwbCacheManager.CAFFEINE)
public String getXXX(){
return getXXXX();
}
public String getXXXX(){
//do something!
return result;
}
9.接口方法不能直接调用
要写一个broker,放在try catch 里面,捕获异常,系统出错时方便排查错误
broker,就是新增一个方法,用新增的方法调用接口。其他类若要使用改接口,就调用新方法,而不会直接去调用接口!
10.Date 和 String 字符串相互转化
要注意 date 和 String 的格式要统一,不然很容易造成bug
比如时间格式 20201011 和 2020-10-11 格式就不一样
11.一个检查功能在一个环境中执行出错,在其他环境正常执行
a. 涉及到数据库中的数据,那么很有可能是在对象 属性set的时候,直接调用查询数据库中的数据的方法。 这种方法很有可能导致,查询出空的数据,直接把空的数据赋值给 对象属性了。后期调用该方法的时候就会抛出 空指针 或者索引越界 等异常
12.修改代码的VO对象
注意,当VO对象修改的时候,要修改对应的SQL文件,SQL文件存在 test/resources/schema 文件夹下面
13.写单元测试时
如果涉及到数据库,也要在 test/resources/schema 文件夹下添加SQL文件,还要在 test/resources/dataset 下面添加xls/xlsx 表格文件,里面存放数据库数据,xls/xlsx文件代表数据库名,文件里的底部 分页名 代表数据表table,表格存放 数据表里的数据!
14.统计数据库中某张表的列名、类型、注释,并做成xls表格的快速方法
Oracle数据库:
select
ut.COLUMN_ID as 序号,
ut.COLUMN_NAME as 字段名称,
ut.DATA_TYPE as 字段类型,
ut.DATA_LENGTH as 字段长度,
ut.DATA_PRECISION as 字段精度,
ut.DATA_SCALE as 字段标度,
uc.comments as 字段注释
from user_tab_columns ut
inner JOIN user_col_comments uc
on ut.TABLE_NAME = uc.table_name and ut.COLUMN_NAME = uc.column_name
where ut.Table_Name='OWB_REPORT';
使用IDEA的database功能,查询出来,将查询出的结果导出为xls表格,可以添加一个主键(当做序号),通过表格对主键进行排序