1.執行完insert語句,返回自增列最新的值。
兩種方式
<insert id="create" parameterType="com.xcg.webapp.model.entity.Production" useGeneratedKeys="true" keyProperty="production_id"> insert into production(production_code,production_name,img_url,spec,purchase_price,sales_price,production_status) values(#{production_code},#{production_name},#{img_url},#{spec},#{purchase_price},#{sales_price},#{production_status}); </insert> <insert id="create2" parameterType="com.xcg.webapp.model.entity.Production"> <selectKey keyProperty="production_id" keyColumn="production_id" order="AFTER" resultType="java.lang.Integer">SELECT LAST_INSERT_ID()</selectKey> insert into production(production_code,production_name,img_url,spec,purchase_price,sales_price,production_status) values(#{production_code},#{production_name},#{img_url},#{spec},#{purchase_price},#{sales_price},#{production_status}); </insert>
2.執行insert語句,返回非自增主鍵的值。
非自增我改成了String類型,在插入前給主鍵參數id賦值,對應屬性名id,對應列名id:
<selectKey keyProperty="production_id" keyColumn="production_id" order="BEFORE" resultType="java.lang.String">select replace(UUID(),'-','')</selectKey>
執行完後,會自動給對象中的屬性賦值,而方法的返回值是受影響行數。
@GetMapping("/create2") public Object create2(){ Production production = new Production(); production.setProduction_code("1003"); production.setProduction_name("橙汁2"); production.setSpec("500ml"); production.setProduction_status("10"); production.setPurchase_price(new BigDecimal("2")); production.setSales_price(new BigDecimal("4")); production.setImg_url(""); //受影響行數 var count = productionService.create(production); //這纔是最新id int pid = production.getProduction_id(); return pid; }