iBatis取得自动生成的主键
iBatis获得自动生成的主键
大约两种情况:
pre-generated keys (e.g. Oracle)
pre-generated keys (e.g. MySQL)
注意:MySQl函数LAST_INSERT_ID()是与connection绑定的,没有多线程问题。可以放心使用。
大约两种情况:
- Oracle, IBM DB2使用序列
- MySQL,MS-SQLServer支持主键自动增长
pre-generated keys (e.g. Oracle)
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int" keyProperty="ID"> <![CDATA[ SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL ]]> </selectKey> <![CDATA[ INSERT INTO PRODUCT (PRD_ID,PRD_DESCRIPTION) VALUES (#id#,#description#) ]] </insert>
pre-generated keys (e.g. MySQL)
<insert id="insertProduct-MySQL" parameterClass="com.domain.Product"> insert into PRODUCT (PRD_DESCRIPTION) values (#description#) <selectKey resultClass="int" keyProperty="ID"> SELECT LAST_INSERT_ID() </selectKey> </insert>
注意:MySQl函数LAST_INSERT_ID()是与connection绑定的,没有多线程问题。可以放心使用。