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对象,需要做类型转换。

你可能感兴趣的:(oracle,ibatis,db2,Sybase,Derby)