ibatis 增加時返回自增主鍵
阿新 • • 發佈:2019-01-24
<insert id="insert" parameterMap="pm_user_without_id"> <![CDATA[ INSERT INTO t_user (username,password,emplName,visible) VALUES (?,?,?,?) ]]> <selectKey resultClass="int"> <![CDATA[ SELECT @@IDENTITY AS ID ]]> </selectKey> </insert>想取的主鍵的值,需要加 selectKey這段,而且前面sql語句裡面不需要插入主鍵欄位。對於不同的資料庫,selectKey語句的寫法是不同的。
針對不同資料庫的寫法如下:
Cloudscape VALUES IDENTITY_VAL_LOCAL() DB2 VALUES IDENTITY_VAL_LOCAL() Derby VALUES IDENTITY_VAL_LOCAL() HSQLDB CALL IDENTITY() MySql SELECT LAST_INSERT_ID() SqlServer SELECT SCOPE_IDENTITY() SYBASE SELECT @@IDENTITY ORACLE SELECT CUSTOM_SQL.NEXTVAL AS ID FROM DUAL
而且id =(Integer )getSqlMapClientTemplate().insert("addUser", user);
做insert操作返回的是key是一個object物件,需要做型別轉換。