ibatis主键生成策略

发布时间:2024-11-15 09:18

最新推荐文章于 2021-02-07 12:21:27 发布

XiaoGuang-Xu 于 2013-10-27 11:00:49 发布

iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post)。

Oracle设置

<!-- Oracle SEQUENCE --> <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int" keyProperty="id" type="pre"> <![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]> </selectKey> <![CDATA[insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values(#id#,#description#)]]> </insert>

<!-- Oracle SEQUENCE -->

<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">

<selectKey resultClass="int" keyProperty="id" type="pre">

<![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]>

</selectKey>

<![CDATA[insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values(#id#,#description#)]]>

</insert>

MS SQL Server配置

<!-- Microsoft SQL Server IDENTITY Column 改进--> <insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product"> <selectKey resultClass="int" keyProperty="id"> <![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values(#description#) SELECT SCOPE_IDENTITY() AS ID ]]> </selectKey> </insert>

<!-- Microsoft SQL Server IDENTITY Column 改进-->

<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">

<selectKey resultClass="int" keyProperty="id">

<![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values(#description#)

SELECT SCOPE_IDENTITY() AS ID ]]>

</selectKey>

</insert>

MySQL配置

<!-- MySQL Last Insert Id --> lt;insert id="insertProduct-Mysql" parameterClass="com.domain.Product"> <![CDATA[insert into PRODUCT(PRD_DESCRIPTION) values(#description#)]]> <selectKey resultClass="int" keyProperty="id"> <![CDATA[SELECT LAST_INSERT_ID() AS ID ]]> <!-- 该方法LAST_INSERT_ID()与数据库连接绑定,同属统一会话级别,不会发生上述MS SQL Server的函数问题。 --> </selectKey> lt;/insert>

<!-- MySQL Last Insert Id -->

<insert id="insertProduct-Mysql" parameterClass="com.domain.Product">

<![CDATA[insert into PRODUCT(PRD_DESCRIPTION) values(#description#)]]>

<selectKey resultClass="int" keyProperty="id">

<![CDATA[SELECT LAST_INSERT_ID() AS ID ]]>

<!-- 该方法LAST_INSERT_ID()与数据库连接绑定,同属统一会话级别,不会发生上述MS SQL Server的函数问题。 -->

</selectKey>

</insert>

当然mysql中可以用auto_increment!ms sql中也有identity可以用,这样做是为了兼容其他数据库!

网址:ibatis主键生成策略 https://www.yuejiaxmz.com/news/view/81481

相关内容

心学问心理教育,优质亲子教育与科学育儿策略:孩子成长的关键
中班育儿知识:十月份的关键成长阶段和应对策略
主要的股票投资策略有哪些
股票投资策略主要有哪几种
个人财务管理策略:成功摆脱债务困扰的有效方法
课堂时间管理策略
如何全方位节省开销:攻略海南旅游低成本出行策略
杠铃策略——撬动你人生的投资策略
消费投资的策略
投资理财策略范例6篇

随便看看