MyBatis获取刚刚插入对象的id
适用于对于支持自动生成主键的数据库
一、数据库表中ID的设计
id int型 自动递增
二、MyBatis的Mapper
useGeneratedKeys=”true” keyProperty=”id” 是重点
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> INSERT INTO rdss2_report( report_name, componets, update_date, create_date, update_by, create_by ) VALUES ( #{reportName}, #{componets}, #{updateDate}, #{createDate}, #{updateBy.id}, #{createBy.id} ) </insert>
三、Java代码
重要代码如下,在保存完对象后,mybatis会自动把ID反填入对象中,直接获取即可
rdss2ReportService.save(rdss2Report); System.out.println("test:"+rdss2Report.getId()+"-"+rdss2Report.getComponets());
@RequestMapping(value="/saveReport", method=RequestMethod.POST) @ResponseBody public void saveReport(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> param) { JSONObject jo = new JSONObject(); try { Rdss2Report rdss2Report = new Rdss2Report(); rdss2Report.setReportName(param.get("title").toString()); rdss2Report.setComponets(param.get("par").toString()); rdss2ReportService.save(rdss2Report); System.out.println("test:"+rdss2Report.getId()+"-"+rdss2Report.getComponets()); jo.put("result", "success"); PrintWriter out = null; response.setContentType("application/json"); out = response.getWriter(); out.write(jo.toString()); } catch (Exception e) { jo.put("result", "fail"); PrintWriter out = null; response.setContentType("application/json"); try { out = response.getWriter(); } catch (IOException e1) { e1.printStackTrace(); } out.write(jo.toString()); e.printStackTrace(); } }
抱歉,暂停评论。