插入一條資料後直接得到這條資料的id
今天遇到一個問題就是,想插入後繼續獲得主鍵然後再次操作!
可能有好幾種方法,今天親自測試使用的一種方法記錄一下,分享給大家!
針對的資料庫是MYSQ 主鍵自增l 以下面這個sql為例
<!-- 插入客戶檔案 -->
<insert id="insertCustomer" parameterType="com.cdel.module.customer.domain.Customer">
INSERT INTO pss_basedata_customer (customerName,shortName,customerCompany,contacter,principals,cellphone,telephone,address,postcode,isArchive,auditor,auditStatus,auditTime,creator,createTime,modifier,modifyTime,status,remark,sortNum,currentDiscount,areaID,isSpecial)
VALUES (
#{customerName},#{shortName},#{customerCompany},#{contacter},#{principals},#{cellphone}, #{telephone},#{address},#{postcode},#{isArchive},#{auditor},#{auditStatus},#{auditTime},#{creator},#{createTime}, #{modifier},#{modifyTime},#{status},#{remark}, #{sortNum},#{currentDiscount}, #{areaID},#{isSpecial}
)
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="customerID">
</selectKey>
</insert>
方法:1.sql中加入:
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="customerID">
SELECT @@IDENTITY AS customerID
</selectKey>
2.在dao層接收返回的主鍵
public Integer insertCustomer(Customer customer) {
return customer.getCustomerID();
}