sprimgmvc mybatis 儲存物件的同時獲取id
阿新 • • 發佈:2019-01-07
需求:使用MyBatis往MySQL資料庫中插入一條記錄後,需要返回該條記錄的自增主鍵值。
方法:在mapper中指定keyProperty屬性,示例如下:
Xml程式碼<insert id="saveBzzzXiangmu" parameterType="BzzzXiangmu" useGeneratedKeys="true" keyProperty="id"> insert into dt_bzzz_xiangmu (class_id,type,xiangmu_id, name, value) values (#{class_id},#{type},#{xiangmu_id},#{name},#{value}) </insert>
如上所示,我們在insert中指定了keyProperty="id",其中userId代表插入的BzzzXiangmu物件的主鍵屬性。
BzzzXiangmu.java
Javabeen程式碼package com.app.bean; /* * 辨證診治辯證 * pjc * 2016.12.20 */ public class BzzzBianzheng { private int id; private int class_id; private int type; private int xiangmu_id; private int fenxing_id; private String value; public BzzzBianzheng() { super(); } public BzzzBianzheng(int id, int class_id, int type, int xiangmu_id, int fenxing_id, String value) { super(); this.id = id; this.class_id = class_id; this.type = type; this.xiangmu_id = xiangmu_id; this.fenxing_id = fenxing_id; this.value = value; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getClass_id() { return class_id; } public void setClass_id(int class_id) { this.class_id = class_id; } public int getType() { return type; } public void setType(int type) { this.type = type; } public int getXiangmu_id() { return xiangmu_id; } public void setXiangmu_id(int xiangmu_id) { this.xiangmu_id = xiangmu_id; } public int getFenxing_id() { return fenxing_id; } public void setFenxing_id(int fenxing_id) { this.fenxing_id = fenxing_id; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } @Override public String toString() { return "BzzzBianzheng [id=" + id + ", class_id=" + class_id + ", type=" + type + ", xiangmu_id=" + xiangmu_id + ", fenxing_id=" + fenxing_id + ", value=" + value + "]"; } }
控制器程式碼片
managerController.java 直接在控制器用dao層執行儲存 而不是service層
else if (btntype.equals("0")) {// 新增辨證診治疾病資訊
/*int num = bzzzService.saveBzzzXiangmu(class_id1, type1, xiangmu_id1, xiangmuName, value1);*/
BzzzXiangmu bzzzXiangmu=new BzzzXiangmu();
bzzzXiangmu.setClass_id(class_id1);
bzzzXiangmu.setType(type1);
bzzzXiangmu.setXiangmu_id(xiangmu_id1);
bzzzXiangmu.setName(xiangmuName);
bzzzXiangmu.setValue(value1);
int num =bzzzXiangmuDao.saveBzzzXiangmu(bzzzXiangmu);
/* int xiangmu_id1=bzzzXiangmu.getXiangmu_id();*/
int num1 = bzzzService.updateBzzzJibing2(class_id1, type1);// 通用改變疾病資訊
int num2 = 0;
int num3 = 0;
int size = java.lang.reflect.Array.getLength(fenxing_id);
// 取得這個陣列大小
for (int j = 0; j < size; j++) {
if (id2 != null && id2.length >= j + 1 && id3 != null && id3.length >= j + 1) { // 更新
num2 = bzzzService.updateBzzzFenxing(Integer.parseInt(id2[j]), class_id1, type1,
Integer.parseInt(fenxing_id[j]), zhuxing[j], zhengzhi[j]);// 批量修改辯證診治分型資訊
num3 = bzzzService.saveBzzzBianzheng(class_id1, type1, xiangmu_id1,
Integer.parseInt(fenxing_id[j]), bianzhengValue[j]);
} else {
num2 = bzzzService.saveBzzzFenxing(class_id1, type1, Integer.parseInt(fenxing_id[j]),
zhuxing[j], zhengzhi[j]);
num3 = bzzzService.saveBzzzBianzheng(class_id1, type1, xiangmu_id1,
Integer.parseInt(fenxing_id[j]), bianzhengValue[j]);
}
}