ibatis主键自动生成

开发 后端
由于数据库供应商之间生成主键的方式不一样,有些是预先生成主键的,有些是事后生成主键的。不管是哪种方式,我们都可以用ibatis的<selectkey>节点来获取<insert>语句自动生成的ibatis主键。

我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。

有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主键的,如MySQL和SQL Server。但是不管是哪种方式,我们都可以用iBATIS的节点来获取语句所自动生成的主键。

例子如下:

xml 代码  
  1. <!-- Oracle SEQUENCE Example using .NET 1.1 System.Data.OracleClient -->  
  2. <insert id="insertProduct-ORACLE" parameterClass="product">  
  3.     <selectKey resultClass="int" type="pre" keyProperty="id" >  
  4.         SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
  5.     </selectKey>  
  6.     insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)  
  7. </insert>  
  8.   
  9. <!-- Microsoft SQL Server IDENTITY Column Example -->  
  10. <insert id="insertProduct-MS-SQL" parameterClass="product">  
  11.     insert into PRODUCT (PRD_DESCRIPTION)  
  12.     values (#description#)  
  13.     <selectKey resultClass="int" type="post" keyProperty="id" >  
  14.         select @@IDENTITY as value  
  15.     </selectKey>  
  16. </insert>  
  17.   
  18. <!-- MySQL Example -->  
  19. <insert id="insertProduct-MYSQL" parameterClass="product">  
  20.     insert into PRODUCT (PRD_DESCRIPTION)  
  21.     values (#description#)  
  22.     <selectKey resultClass="int" type="post" keyProperty="id" >  
  23.         select LAST_INSERT_ID() as value  
  24.     </selectKey>  
  25. </insert>  

通过这种方法,我们可以轻松实现自动生成ibatis主键,给我们的工作带来了很大的便利

【编辑推荐】

  1. 轻松完成ibatis自动代码生成
  2. 实例说明ibatis动态查询
  3. 支持自动生成sql语句的ibatis改造
  4. ibatis标签详解
  5. ibatis下加入c3p0连接池的方法
责任编辑:桑丘 来源: javaeye论坛
相关推荐

2009-07-14 18:24:31

ibatis映射文件

2009-07-16 09:09:36

ibatis自动代码

2009-07-16 11:35:57

自动生成ibatis改造

2009-07-16 11:40:23

ibatis自动生成abator

2009-07-14 17:12:26

ibatis自动代码生

2009-07-15 17:31:08

iBATIS Ecli

2009-06-29 08:56:49

Hibernate主键生成主键

2009-09-25 13:33:43

Hibernate主键

2009-09-22 09:31:15

Hibernate主键

2009-06-25 17:24:06

Hibernate主键

2009-06-29 08:50:20

Hibernate主键

2010-10-11 11:46:20

MySQL主键

2009-06-29 09:08:12

半自动化ORM实现

2009-09-28 10:52:33

Hibernate主键主键生成

2010-10-11 11:31:27

MySQL主键

2009-05-15 10:14:31

SQL Server主键自动编号

2009-06-26 10:12:00

Hibernate自动

2017-07-19 16:25:07

数据库开发DB分库主键生成策略

2009-07-15 15:47:49

iBATIS是什么

2009-07-21 11:12:00

iBATIS配置
点赞
收藏

51CTO技术栈公众号