开发中遇到的问题

开发中遇到的问题

一.Mybatis

1.链式SQL嵌套and,or

java 复制代码
 List<UserMeetDO> meets = userMeetMapper.selectList(new LambdaQueryWrapper<UserMeetDO>()
                        .eq(UserMeetDO::getMeetId, userMeetVo.getMeetId())
                        .and(wrapper -> wrapper
                                .and(w -> w.le(UserMeetDO::getStartTime, userMeetVo.getStartTime()).gt(UserMeetDO::getEndTime, userMeetVo.getStartTime()))
                                .or(w -> w.lt(UserMeetDO::getStartTime, userMeetVo.getEndTime()).ge(UserMeetDO::getEndTime, userMeetVo.getEndTime()))
                                .or(w -> w.ge(UserMeetDO::getStartTime,  userMeetVo.getStartTime()).le(UserMeetDO::getEndTime, userMeetVo.getEndTime()))
                        )
                );

2.xml

在xml中mybatis里认为0就是空字符串

if和foreach

xml 复制代码
 	 <if test="deptIds != null">
            and (
            sl.dept_id in
            <foreach collection="deptIds" open="(" close=")" separator="," item="id">
                #{id}
            </foreach>
            or sl.owner_id in
            <foreach collection="deptIds" open="(" close=")" separator="," item="id">
                #{id}
            </foreach>
            )
        </if>

3.分页

中规中矩

java 复制代码
 Page<Object> iPage = PageHelper.startPage(page, size);
 return PageResult.of(iPage,list);

手动分页

java 复制代码
 public List<PlanReceiveBo> getPage(List<PlanReceiveBo> list, int pageNum, int pageSize) {
        List<PlanReceiveBo> result = new ArrayList<>();
        if (list == null || list.isEmpty()) {
            return result;
        }
        int totalSize = list.size();
        int totalPage = (totalSize + pageSize - 1) / pageSize;
        if (pageNum < 1 || pageNum > totalPage) {
            return result;
        }
        int startIndex = (pageNum - 1) * pageSize;
        int endIndex = Math.min(startIndex + pageSize, totalSize);
        for (int i = startIndex; i < endIndex; i++) {
            result.add(list.get(i));
        }
        return result;
    }

二.SpringBoot

1.定时任务

@Scheduled(cron = "0 0 2 * * ?")

5位:* * * * * 分、时、天、月、周

6位:* * * * * * 秒、分、时、天、月、周

7位:* * * * * * * 秒、分、时、天、月、周、年

三.Java

1.常用的流

java 复制代码
  BigDecimal totalAmount = list.stream()
        .map(e -> e.getPlanReceiveAmount())
        .reduce(BigDecimal.ZERO, BigDecimal::add);

2.时间格式转换

LocalDate->LocalDateTime

java 复制代码
param.setApplyStartTime(listParam.getStartTime().atStartOfDay());
param.setApplyEndTime(listParam.getEndTime().atTime(23,59,59));

LocalDateTime->LocalDate

java 复制代码
LocalDateTime dateTime = LocalDateTime.of(2023, 11, 17, 10, 30);
LocalDate date = dateTime.toLocalDate();
System.out.println(date); // 输出 2023-11-17

3.JSON问题

如果为空就不返回该字段

java 复制代码
@JsonInclude(JsonInclude.Include.NON_EMPTY)

JSON的相互转换

java 复制代码
String jsonString = "{\"name\":\"name\", \"age\":20}";
SomeObject someObject = JSON.parseObject(jsonString, SomeObject.class);
SomeObject someObject = new SomeObject("name", 20);
String jsonString = JSON.toJSONString(someObject, SerializerFeature.PrettyFormat);
java 复制代码
		
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray attributesArray = jsonObject.getJSONArray("attributes");
JSONObject attributes1 = attributesArray.getJSONObject(0);
String country = attributes1.getString("country");

四.Windows

1.杀死端口

bash 复制代码
netstat --ano | findstr <端口号>
bash 复制代码
taskkill /F /PID 39908

未完待续...

相关推荐
Xiaokai丶7 分钟前
吃透设计模式+面试:原理、场景、代码三位一体,系统梳理核心知识点
java
做一位快乐的码农19 分钟前
房屋装修设计管理系统的设计与实现/房屋装修管理系统
java·struts·spring·eclipse·tomcat·maven
冷月半明1 小时前
网关饿晕了:Spring Cloud Gateway 内存告急 500 错误现场抓妖记
java·后端
2025年一定要上岸1 小时前
【数据结构】-4-顺序表(上)
java·开发语言·数据结构
做一位快乐的码农2 小时前
基于springboot的理商管理平台设计与实现、java/vue/mvc
java·vue.js·spring boot
ss2732 小时前
手写MyBatis第31弹-用工厂模式重构MyBatis的SqlSession创建过程
spring boot·后端·mybatis
麦兜*2 小时前
【Prometheus】 + Grafana构建【Redis】智能监控告警体系
java·spring boot·redis·spring·spring cloud·grafana·prometheus
lizz314 小时前
从 JUnit 深入理解 Java 注解与反射机制
java·开发语言·junit
编啊编程啊程7 小时前
JUC之AQS
java·开发语言·jvm·c++·kafka
孟婆来包棒棒糖~8 小时前
Maven快速入门
java·spring boot·spring·maven·intellij-idea