日期处理
时间格式化比较
- DATE_FORMAT(start_time,'%Y-%m-%d') = DATE_FORMAT(now(), '%Y-%m-%d')
时间戳比较,注意有些时间戳会加3个000作为后缀,需格式化处理
2. UNIX_TIMESTAMP(NOW()) <= UNIX_TIMESTAMP(exam_date)
实体字段为null设置
- 配置全局处理
- 字段注解 @TableField(updateStrategy = FieldStrategy.IGNORED) @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
- 使用 UpdateWrapper (3.x),通过set进行null值设置,执行update(null, updateWrapper)
查询条件添加OR,后置查询条件 where xxx and xxx and( xxx OR xxx)
queryWrapper.eq("其它查询条件")
.and(
StringUtils.isNotEmpty(orgIds),
orgQueryWrapper -> orgQueryWrapper
.notIn(ApptExamRecord::getTrainOrgId, orgIds)
.or().isNull(ApptExamRecord::getTrainOrgId)
)
xml 连表查询,多表数据查询导出
- 主实体加上注解 @TableField(exist=false)
- xml的resultMap 映射
@TableField(exist=false)
List<TeacherOrg> orgList;
<resultMap id="BaseResultMap" type="com.kmqakj.entity.teacher.TeacherInfo">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR" />
<result property="idCard" column="id_card" jdbcType="VARCHAR" />
<result property="sex" column="sex" jdbcType="TINYINT" />
<result property="phone" column="phone" jdbcType="VARCHAR" />
<collection property="orgList" select="queryOrg" javaType="java.util.List" ofType="com.kmqakj.entity.teacher.TeacherOrg"
column="id">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="teacherId" column="teacher_id" />
<result property="orgId" column="org_id" />
<result property="orgName" column="org_name" />
</collection>
</resultMap>
查询数据异常
-
left join 连表查询,右表没数据,导致查询出来的数据未null,但是list会存在数据,可以替换未inner join, 或者数组去空处理
-
使用mysql查询的时候使用不等于或者not in等语法查询时,会导致查询字段为null的数据查询不出来,需要加一个查询条件