第一步:
在Mybatis Mapper文件中添加屬性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java對象的屬性名!
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="id" parameterType="com.bookmanager.model.LeaveMessage">
insert into leave_message_tbl (content, createdate,
userid)
values (#{content,jdbcType=VARCHAR}, #{createdate,jdbcType=DATE},
#{userid,jdbcType=INTEGER})
</insert>
useGeneratedKeys: 要求數據庫本身具備主鍵自動增長的功能,比如說,mysql,sqlserver可以使用useGeneratedKeys =true 這功能,不支持主鍵自動增長的數據庫是不能使用useGeneratedKeys =true的;
keyProperty:一定得和java對象的屬性名稱一直,而不是表格的字段名
第二步:
void insertAndGetId(LeaveMessage record);
返回值爲void;假如說返回值爲int,mybatis會判斷爲返回插入成功的條數所以會一直返回爲1
第三步:
@RequestMapping("/save")
@ResponseBody
public ResultDTO save(@RequestBody LeaveMessage leaveMessage){
ResultDTO dto = ResultDTO.getIntance();
dto.message = "留言失敗,請重新提交";
dto.type = "error";
try {
/*leaveMessageService.save(leaveMessage);*/
leaveMessageService.insertAndGetId(leaveMessage);
System.out.println(leaveMessage.getId());
dto.message = "恭喜你,留言成功";
dto.type = "success";
} catch (Exception e) {
e.printStackTrace();
}
return dto;
}
結果: