Mybatis-plus新用法
VehicleBO one = vehicleService.getOne(Wrappers.<VehicleBO>lambdaQuery().eq(VehicleBO::getVin, reqVo.getVin()));
boolean b = bizAccountApplyService.remove(Wrappers.<BizAccountApplyBO>lambdaQuery().eq(BizAccountApplyBO::getId, 1457753126076448l));
iBizAccountService.update(Wrappers.<BizAccountBO>lambdaUpdate().setSql("follow_count=follow_count+1").eq(BizAccountBO::getId, accountId));
mybatisPlus坑
字段更新为null 默认不生效,除非加上updateStrategy = FieldStrategy.IGNORED
@ApiModelProperty(value = "贷款类型")
@TableField(value = "LOAN_TYPE", updateStrategy = FieldStrategy.IGNORED)
private String loanType;
Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: 无法将 NULL 插入 (“ZHXY_RSW_LOCAL”.“T_EXAM_SUBJECT”.“ID”)
使用mybatis-plus插入时,明明设置了id的值,还报这个错
解决办法:在id字段上,添加 @TableId(type = IdType.INPUT)

条件是表中的某个字段不为null时,添加过滤

上面这样写会报错,下面这样写才对

left join时左表过滤用where,右表过滤用and
说有下面两张表


– 找出每个班级的名称及其对应的女同学数量
SELECT c.name, count(s.name) as num
FROM classes c left join students s
on s.class_id = c.id
and s.gender = 'f'
group by c.name
– 找出一班的同学总数
SELECT c.name, count(s.name) as num
FROM classes c left join students s
on s.class_id = c.id
where c.name = '一班'
group by c.name
mysql分组后 组内排序 然后取每组第一条结果
需求:按room_id分组后,组内按data_time排序,然后取每组的第一条数据
可能看不懂,但就这么写没错,亲测正确(必须加limit)
select t.* from (
select t1.room_id,t2.room_name,t1.queuing_time,t1.in_num
from t_meal_room t2
left join t_meal_data t1 on t1.room_id=t2.id
order by t1.data_time desc
limit 999999999
) t group by room_id
resultMap
适用场景:类似一个项目多个合同

<resultMap id="projectManegeMap" type="com.iflytek.project.base.vo.resp.ProjMoneyManageVo">
<result column="PROJECT_ID" property="projectId"/>
<result column="PROJECT_NAME" property="projectName"/>
<result column="PROJECT_CODE" property="projectCode"/>
<result column="PROJECT_STAGE" property="projectStage"/>
<result column="ESTIMATED_INVESTMENT_AMOUNT" property="estimatedInvestmentAmount"/>
<!--ProjMoneyManageVo有属性 List<ContractInfo> contractList-->
<collection property="contractList" javaType="list" ofType="com.iflytek.project.base.vo.resp.ContractInfo">
<result column="CONTRACT_ID" property="contractId"/>
<result column="CONTRACT_MONEY" property="contractMoney"/>
<result column="SIGN_DATE" property="signDate"/>
<result column="PAYMENTS_NUM" property="paymentsNum"/>
<result column="CURRENT_NUM" property="currentNum"/>
<result column="PAYED_MONEY" property="payedMoney"/>
<result column="TOPAY_MONEY" property="topayMoney"/>
<result column="PAYMENTS_PER" property="paymentsPer"/>
<result column="PAYED_TOPAY" property="payedTopay"/>
<result column="PAYED_PER" property="payedPer"/>
</collection>
</resultMap>
in 占位符
mapper接口ids传数组String[]
List<TTopicFileStorage> selectFileList(@Param("ids") String[] ids, @Param("stage") String stage);
mapper.xml
and d.id IN
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
或者
mapper接口idList传列表List
List<ProjectFileResp> getProjectFileByIds(@Param("idList") List<String> idList);
mapper.xml
<if test='idList != null and idList.size() >0'

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



