我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。
有些是预先生成(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>
分享到:
相关推荐
同时,它支持多种数据库,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL等,这使得该工具具有极高的兼容性和普适性。 在实际使用中,开发者可以通过输入必要的参数,如表名、字段名等,快速生成对应的Ibatis ...
MySQL、SQL Server等数据库支持字段的自动递增特性。在Ibatis中,只需在Mapper XML文件中的`<insert>`标签中设置`useGeneratedKeys="true"`和`keyProperty="id"`,就可以让数据库自动生成主键。 4. **雪花算法...
该示例演示使用iBATIS操纵Oracle、MySQL和MS SERVER三种数据库(实现查询与新增动作),只需要修改配置档与SQL影射档即可,而Java部分的代码不用修改。本人觉得,该框架一个非常简单、使用方便的持久层框架。其中:...
本篇文章将探讨从SQL Server迁移到MySQL的过程,以及Oracle、SQL Server和MySQL之间的主要区别,这对于理解数据库管理和开发至关重要。 首先,数据库迁移主要包括以下几个步骤: 1. **数据库建表脚本的修改**:...
例如,SQL Server使用`com.microsoft.sqlserver.jdbc.SQLServerDriver`,MySQL使用`com.mysql.jdbc.Driver`,Oracle则使用不同的驱动。 5. **ORM工具与迁移**: - ORM(对象关系映射)工具如Hibernate和iBatis在...
在使用这个工具时,用户可能需要提供数据库连接信息,包括数据库类型(如MySQL、Oracle或SQL Server)、数据库URL、用户名和密码。然后,工具会扫描数据库中的表结构,为每个表创建相应的映射文件。在映射文件中,每...
本教程“08_传智播客ibatis教程_sql主键生成方式”主要聚焦于如何在Ibatis中处理SQL查询时的主键生成策略,这对于确保数据的一致性和完整性至关重要。 Ibatis允许开发者自定义SQL语句,包括插入、更新、删除和查询...
只需更改SqlMapConfig.xml中的配置,就可以轻松切换到其他数据库,如Oracle、SQL Server等。只需更换相应的数据库提供者,并调整连接字符串即可。 总结,IBatis.net通过XML配置文件和.NET接口,实现了数据库操作的...
- **方言支持**:识别并处理各种数据库方言,如Oracle的`ROWNUM`,MySQL的`LIMIT`,SQL Server的`TOP`等。 - **参数映射优化**:根据目标数据库的特性调整参数绑定方式,如占位符、问号等。 - **性能优化**:提供...
- **数据库连接配置**: 支持多种数据库类型,如MySQL、Oracle、SQL Server等,并可以配置数据库连接参数。 - **项目模板定制**: 用户可以根据需求自定义生成的项目结构和代码模板,适应不同的开发规范。 3. **...
此外,Mygeneration支持多种数据库,包括但不限于MySQL、Oracle、SQL Server等。 2. **IBatis.NET**:IBatis.NET是一种轻量级的ORM(对象关系映射)框架,它不强求完全的自动化映射,而是将SQL查询的编写权交给...
iBatis支持多种数据库,包括MySQL、Oracle、SQL Server等。在源码中,iBatis通过JDBC驱动与数据库交互,因此,理解SQL Server的数据类型、事务管理和存储过程对于使用iBatis至关重要。例如,你可以看到iBatis如何...
iBATIS支持多种数据库管理系统,如Oracle、MySQL、SQL Server等。 二、SQL Maps概念 SQL Maps是iBATIS的核心组件,负责将Java对象与数据库表之间的映射。SQL Maps提供了一个灵活的方式来定义数据库表的结构和关系...
5.3 数据库兼容性:Ibatis 支持多种数据库,如 MySQL、Oracle、SQL Server 等,只需编写对应的 SQL 语句即可。 总结来说,Ibatis 是一个高效、灵活的 ORM(对象关系映射)框架,它让开发者能够更专注于业务逻辑,而...
iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是一种常见的需求,特别是在搜索功能中。 ##### 1.1 基础LIKE查询语法...
此外,还包括事务管理,使得开发者能够更好地控制数据的读写操作,并且支持多种数据库,如Oracle、MySQL、SQL Server等。 教程《iBATIS-SqlMaps-2 Tutorial_ja.pdf》可能包含以下内容:基础安装和配置、SqlMap配置...
2. **JDBC驱动**: 根据实际使用的数据库类型,如MySQL、Oracle、SQL Server等,需要对应的JDBC驱动JAR文件。这些驱动实现了Java与数据库之间的通信协议,使得Java应用程序能够通过JDBC API与数据库进行交互。 3. **...
Ibatis支持多种数据库,如MySQL、Oracle、SQL Server等,通过配置数据源,可以灵活切换不同的数据库环境。例如,通过`DataSource`配置,我们可以指定数据库驱动、连接URL、用户名和密码,实现与数据库的连接。 ...
- **多种数据库支持**: IBatis.Net兼容多种数据库,如MySQL、Oracle、SQL Server等,只需提供相应的数据库驱动即可。 **2. 文件解析** - `providers.config`: 这个文件可能包含了IBatis.Net使用的数据库提供者配置...