mybatis+mysql返回插入值後的主鍵id

第一步:

    在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;
	}


結果:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章