在用ibaits做项目的时候,有时我们插入这条数据后需要返回当前的ID,其实可以这样实现:
一:在oracle中,Oracle没有autoincrement,而是用触发器实现的,CURRVAL是在触发器中定义的,具体如下
<insert id="addNewExpert" parameterClass="applyId">
insert into t_expert(APPLY_ID) values(#applyId#)
<selectKey resultClass="int" keyProperty="id" >
SELECT t_expert.CURRVAL AS ID FROM DUAL
</selectKey>
</insert>
二:在mysql中
<insert id="addNewExpert " parameterClass="applyId ">
insert into t_expert(USERNAME,AGE) values(#username#,#age#)
<selectKey resultClass="int" keyProperty="signId" >
SELECT last_insert_id() as signId ;
</selectKey>
</insert>
一:在oracle中,Oracle没有autoincrement,而是用触发器实现的,CURRVAL是在触发器中定义的,具体如下
<insert id="addNewExpert" parameterClass="applyId">
insert into t_expert(APPLY_ID) values(#applyId#)
<selectKey resultClass="int" keyProperty="id" >
SELECT t_expert.CURRVAL AS ID FROM DUAL
</selectKey>
</insert>
二:在mysql中
<insert id="addNewExpert " parameterClass="applyId ">
insert into t_expert(USERNAME,AGE) values(#username#,#age#)
<selectKey resultClass="int" keyProperty="signId" >
SELECT last_insert_id() as signId ;
</selectKey>
</insert>