mybatis 更新一条记录,同时返回该条记录的指定参数
更新数据同时返回被更新记录的参数
1.实体类
public class txy_training_class_leave {
private String trainingId;
private String type;
private Date courseDate;
private String signType;
private String signLocation;
private String userId;
private String baseId;
}
2.实现类代码
@Override
public String updateCourseLeaveRecallState(TxyTrainingClassSignDto dto) {
// 这里只返回baseId
txyTrainingClassLeaveMapper.updateCourseLeaveRecallState(dto);
return dto.getBaseId();
}
3.Mapper类代码
// 这里不需要指定返回参数类型
void updateCourseLeaveRecallState(TxyTrainingClassSignDto dto);
4.xml代码
//xml代码
<update id="updateCourseLeaveRecallState" parameterType="com.test.bean.txy_training_class_leave ">
<selectKey resultType="java.lang.String" keyProperty='baseId' order='BEFORE'>
SELECT
(select base_id FROM txy_training_class_leave WHERE
is_delete = '0'
AND training_id = #{trainingId} AND course_date = DATE_FORMAT( #{courseDate}, '%Y-%m-%d' )
AND type = #{signType} AND user_id=#{userId}) baseId
from DUAL
</selectKey>
UPDATE txy_training_class_leave
SET recall_state='1',recall_time=now()
WHERE
is_delete = '0'
AND training_id = #{trainingId} AND course_date =DATE_FORMAT( #{courseDate}, '%Y-%m-%d' )
AND type = #{signType} AND user_id=#{userId}
</update>
// 此处的 keyProperty=’baseId’ 是指将查询出来的baseId 映射到传入更新方法updateCourseLeaveRecallState的使用的实体类txy_training_class_leave 的 baseId参数中 。类型为String
版权声明:本文为Mr_SnakeZ原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。