1. 程式人生 > >ibatis 增加時返回自增主鍵

ibatis 增加時返回自增主鍵

<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物件,需要做型別轉換。