mybatis 更新一条记录,同时返回该条记录的指定参数
- 更新数据同时返回被更新记录的参数
- 1.实体类
- 2.实现类代码
- 3.Mapper类代码
- 4.xml代码
更新数据同时返回被更新记录的参数
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代码
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
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}
// 此处的 keyProperty=’baseId’ 是指将查询出来的baseId 映射到传入更新方法updateCourseLeaveRecallState的使用的实体类txy_training_class_leave 的 baseId参数中 。类型为String