`

iBATIS自动生成主键(oracle,sqlserver,mysql)

 
阅读更多

在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。
有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主键的,如MySQL和SQL Server。但是不管是哪种方式,我们都可以用iBATIS的节点来获取语句所产生的主键。

例子如下:

假设我的数据库表为PRODUCT (PRD_ID,PRD_DESCRIPTION)。

xml 代码
<!-- oracle Example -->
<insert id="insertProduct-ORACLE" parameterClass="product">  
    <selectKey resultClass="int" type="pre" keyProperty="id" >  
        SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE 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="product">  
    insert into PRODUCT (PRD_DESCRIPTION)  
    values (#description#)  
    <selectKey resultClass="int" type="post" keyProperty="id" >  
        select @@IDENTITY as value  
    </selectKey>  
</insert>  
  
<!-- MySQL Example -->  
<insert id="insertProduct-MYSQL" parameterClass="product">  
    insert into PRODUCT (PRD_DESCRIPTION)  
    values (#description#)  
    <selectKey resultClass="int" type="post" keyProperty="id" >  
        select LAST_INSERT_ID() as value  
    </selectKey>  
</insert>

分享到:
评论

相关推荐

    ibatis sql生成工具

    同时,它支持多种数据库,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL等,这使得该工具具有极高的兼容性和普适性。 在实际使用中,开发者可以通过输入必要的参数,如表名、字段名等,快速生成对应的Ibatis ...

    08_ibatis教程_sql主键生成方式.rar

    MySQL、SQL Server等数据库支持字段的自动递增特性。在Ibatis中,只需在Mapper XML文件中的`&lt;insert&gt;`标签中设置`useGeneratedKeys="true"`和`keyProperty="id"`,就可以让数据库自动生成主键。 4. **雪花算法...

    iBatis框架操纵Oracle、MySQL和MS SQL SERVER数据库使用示例

    该示例演示使用iBATIS操纵Oracle、MySQL和MS SERVER三种数据库(实现查询与新增动作),只需要修改配置档与SQL影射档即可,而Java部分的代码不用修改。本人觉得,该框架一个非常简单、使用方便的持久层框架。其中:...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).docx

    本篇文章将探讨从SQL Server迁移到MySQL的过程,以及Oracle、SQL Server和MySQL之间的主要区别,这对于理解数据库管理和开发至关重要。 首先,数据库迁移主要包括以下几个步骤: 1. **数据库建表脚本的修改**:...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).pdf

    例如,SQL Server使用`com.microsoft.sqlserver.jdbc.SQLServerDriver`,MySQL使用`com.mysql.jdbc.Driver`,Oracle则使用不同的驱动。 5. **ORM工具与迁移**: - ORM(对象关系映射)工具如Hibernate和iBatis在...

    IBatis 代码生成工具

    在使用这个工具时,用户可能需要提供数据库连接信息,包括数据库类型(如MySQL、Oracle或SQL Server)、数据库URL、用户名和密码。然后,工具会扫描数据库中的表结构,为每个表创建相应的映射文件。在映射文件中,每...

    08_传智播客ibatis教程_sql主键生成方式

    本教程“08_传智播客ibatis教程_sql主键生成方式”主要聚焦于如何在Ibatis中处理SQL查询时的主键生成策略,这对于确保数据的一致性和完整性至关重要。 Ibatis允许开发者自定义SQL语句,包括插入、更新、删除和查询...

    IBatis.net 配置各种数据库

    只需更改SqlMapConfig.xml中的配置,就可以轻松切换到其他数据库,如Oracle、SQL Server等。只需更换相应的数据库提供者,并调整连接字符串即可。 总结,IBatis.net通过XML配置文件和.NET接口,实现了数据库操作的...

    [iBATIS]sql转换工具

    - **方言支持**:识别并处理各种数据库方言,如Oracle的`ROWNUM`,MySQL的`LIMIT`,SQL Server的`TOP`等。 - **参数映射优化**:根据目标数据库的特性调整参数绑定方式,如占位符、问号等。 - **性能优化**:提供...

    CSharp.Net项目生成器(ibatis)

    - **数据库连接配置**: 支持多种数据库类型,如MySQL、Oracle、SQL Server等,并可以配置数据库连接参数。 - **项目模板定制**: 用户可以根据需求自定义生成的项目结构和代码模板,适应不同的开发规范。 3. **...

    Mygeneration_1309_20081006—IBatis_SQL映射+实体模板

    此外,Mygeneration支持多种数据库,包括但不限于MySQL、Oracle、SQL Server等。 2. **IBatis.NET**:IBatis.NET是一种轻量级的ORM(对象关系映射)框架,它不强求完全的自动化映射,而是将SQL查询的编写权交给...

    ibatis源码

    iBatis支持多种数据库,包括MySQL、Oracle、SQL Server等。在源码中,iBatis通过JDBC驱动与数据库交互,因此,理解SQL Server的数据类型、事务管理和存储过程对于使用iBatis至关重要。例如,你可以看到iBatis如何...

    iBATIS开发教程.docx

    iBATIS支持多种数据库管理系统,如Oracle、MySQL、SQL Server等。 二、SQL Maps概念 SQL Maps是iBATIS的核心组件,负责将Java对象与数据库表之间的映射。SQL Maps提供了一个灵活的方式来定义数据库表的结构和关系...

    Ibatis

    5.3 数据库兼容性:Ibatis 支持多种数据库,如 MySQL、Oracle、SQL Server 等,只需编写对应的 SQL 语句即可。 总结来说,Ibatis 是一个高效、灵活的 ORM(对象关系映射)框架,它让开发者能够更专注于业务逻辑,而...

    操作数据库 iBATIS查询

    iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是一种常见的需求,特别是在搜索功能中。 ##### 1.1 基础LIKE查询语法...

    iBATIS-SqlMaps-2 PDF文档资料(日文)

    此外,还包括事务管理,使得开发者能够更好地控制数据的读写操作,并且支持多种数据库,如Oracle、MySQL、SQL Server等。 教程《iBATIS-SqlMaps-2 Tutorial_ja.pdf》可能包含以下内容:基础安装和配置、SqlMap配置...

    ibatis 开发指南ibatis 开发指南

    4. 支持多种数据库:iBatis可以很好地适配多种关系型数据库,如MySQL、Oracle、SQL Server等。 五、实战应用 在实际开发中,iBatis常用于复杂的SQL查询、批量操作、存储过程调用等场景。例如,通过使用动态SQL,...

    IBATISJDBC包

    2. **JDBC驱动**: 根据实际使用的数据库类型,如MySQL、Oracle、SQL Server等,需要对应的JDBC驱动JAR文件。这些驱动实现了Java与数据库之间的通信协议,使得Java应用程序能够通过JDBC API与数据库进行交互。 3. **...

    ibatis-2.3

    Ibatis支持多种数据库,如MySQL、Oracle、SQL Server等,通过配置数据源,可以灵活切换不同的数据库环境。例如,通过`DataSource`配置,我们可以指定数据库驱动、连接URL、用户名和密码,实现与数据库的连接。 ...

Global site tag (gtag.js) - Google Analytics