`

iBatis执行insert后返回主键

 
阅读更多
iBatis插入数据后,返回主键。级联操作很有用。省去了一次的查询。

Batis的insert方法返回的是新增记录的主键,类型为Object,但实为整数数字型。


iBatis自动生成的主键
很多数据库支持自动生成主键的数据类型。不过这通常(并不总是)是个私有的特性。
SQL Map 通过<insert>的子元素<selectKey>来支持自动生成的键值。它同时支持预生成(如
Oracle)和后生成两种类型(如 MS-SQL Server)。下面是两个例子:

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


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


<!-- 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>
分享到:
评论

相关推荐

    iBatis SQL Maps开发指南.pdf

    例子1:执行update(insert,update,delete) 例子2:查询成对象(select) 例子3:用预赋值的结果对象查询成对象(select) 例子4:查询成对象List(select) 例子5:自动提交 例子6:用结果集边界查询成对象List...

    Ibatis结合MySQL数据库的使用方法Demo

    本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...

    Spring、Ibatis结合MySQL数据库的使用方法Demo

    本工程用于研究Spring、Ibatis结合MySQL数据库的使用方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char...

    iBATIS 帮助文档

    自动生成的主键.............................................................................................................20 存储过程.....................................................................

    springmybatis

    Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用...

    AppFramework_V1.0

    iBatis2.0 &lt;br&gt;(毫秒) AppFramework &lt;br&gt;(毫秒) 后者前者性能对比 &lt;br&gt;(倍) 根据主键获取实体 &lt;br&gt;(20次单条select) 6.1 5.3 &lt;br&gt;QueryFilter: 5.75 1.15 &lt;br&gt;...

    AppFramework_V1.0_New

    720 1.59 &lt;br&gt;1.53 &lt;br&gt; &lt;br&gt; 表II –50并发4循环(数据库和测试机分开) &lt;br&gt;对比项目 iBatis2.0 &lt;br&gt;(毫秒) AppFramework &lt;br&gt;(毫秒) 后者前者性能对比 &lt;br&gt;(倍) ...

    AppFramework数据库访问组件_代码生成插件_V1.1.rar

    720 1.59 &lt;br&gt;1.53 &lt;br&gt; &lt;br&gt; 表II –50并发4循环(数据库和测试机分开) &lt;br&gt;对比项目 iBatis2.0 &lt;br&gt;(毫秒) AppFramework &lt;br&gt;(毫秒) 后者前者性能对比 &lt;br&gt;(倍) ...

    好用的代码生成源码

    unique="是否唯一性约束" nullable="是否可以为空" pk="是否主键,在表没有主键的情况下,可以指定一个代理主键" updatable="是否可以更新" insertable="是否插入" enumString="枚举值,以分号分隔,示例值:M(1,男);F...

    JdbcTemplateTool.zip

    Spring 出品的 JdbcTemplate 对于不想使用hibernate或者ibatis那样需要大量学习成本而且还想获得对象化的人来说是很好用的。但是 JdbcTemplate还是有很多不足之处或者说是缺点。比如你没法像hibernate那样直接传一个...

Global site tag (gtag.js) - Google Analytics