前言:记录开发过程中常见问题,及解决方法,方便使用

list转Mybatis封装的IPage

使用场景:某些特殊情况,我们需要将list转为分页,使用以下方法 list为数据列表 pageNum当前页 pageSize 每页条数,可以将list转成Ipage分页

1
2
3
4
5
6
7
8
9
10
11
public static IPage listToPage(List list, int pageNum, int pageSize) {
List pageList = new ArrayList<>();
int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
pageList.add(list.get(curIdx + i));
}
IPage page = new Page<>(pageNum, pageSize);
page.setRecords(pageList);
page.setTotal(list.size());
return page;
}

每个产品之间用,分隔 最后一位不添加,分隔

使用场景:将一个list 按,分隔转换成string,并去除最后一位,

1
2
3
4
5
6
7
8
9
10
StringBuilder stringBuffer = new StringBuilder();
for (int i = 0; i < productList.size(); i++) {
ProductVO vo = productList.get(i);
stringBuffer.append(vo.getProductVarietyValue());
// 在最后一个元素之前添加逗号
if (i < productList.size() - 1) {
stringBuffer.append(",");
}
}
System.out.println(stringBuffer.toString());

判断当前环境是否是windows

使用场景:在使用定时任务的时候,项目启动后,如果说本地和服务器的定时任务都在开启,会重复执行,只是查询还好说,如果说带有增删改操作,难免出现意外情况

1
2
3
4
5
// 检查当前操作系统是否为Windows
if (SystemUtils.IS_OS_WINDOWS) {
// 如果是Windows系统,则不执行以下代码
return;
}

Mysql 时间类型添加默认时间

使用场景:当创建数据表时,时间字段不填写的话为null,每个都写的话,代码看起来冗余,使用以下方法,可在添加数据的时候,默认填充当前时间字段

1
CURRENT_TIMESTAMP