oracle主键需预先生成,通过sequence;mysql和mssql是插入后生成。

mysql:

<insert id="insertStu_mysql" parameterClass="stu">  
    insert into stu(name)  values (#name#)  
    <selectKey resultClass="int" keyProperty="id" >  
        select LAST_INSERT_ID()
selectKey> insert>
ibatis测试代码:
SqlMapClient client = SqlConfig.getSqlClient();
Stu s = new Stu();
s.setName(“test”); client.insert("insertStu-mysql",s); //获取主键 System.out.print(" pk = " + s.getId());
------------------------------------------------------------------
 
oracle:预先通过sequence获取
insertStu-oracle" parameterClass="stu">
     int" type="pre" keyProperty="id" >
        SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
     
     insert into STU (ID,NAME) values (#id#,#name#)  

mysql :插入后生成

<insert id="insertStu-mssql" parameterClass="stu">  
     insert into STU(name)  values (#name#)  
     <selectKey resultClass="int"  keyProperty="id" >  
         select @@IDENTITY as value  
     selectKey>  
insert>   



posted on 2010-08-24 08:51  rickyxing  阅读(146)  评论(0编辑  收藏  举报