《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>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/foamflower/archive/2009/07/13/4343819.aspx
分享到:
相关推荐
在Ibatis中,可以通过`<selectKey>`标签配合`keyProperty`指定主键属性,`resultType`指定返回类型,然后在SQL语句中调用序列生成器。 3. **自增(Identity)**: MySQL、SQL Server等数据库支持字段的自动递增...
2. **身份列(Identity)**:在MySQL、SQL Server等支持自动增长的数据库中,可以设置某一列为主键并自动递增。在Ibatis中,可以在插入语句后直接获取生成的主键值。 3. **雪花算法(Snowflake)**:这是一种分布式...
iBATIS支持多种数据库管理系统,如Oracle、MySQL、SQL Server等。 二、SQL Maps概念 SQL Maps是iBATIS的核心组件,负责将Java对象与数据库表之间的映射。SQL Maps提供了一个灵活的方式来定义数据库表的结构和关系...
3. **支持多种数据库**:ibatis支持多种数据库,包括MySQL、Oracle、SQL Server等。 4. **易于调试**:由于SQL语句是在应用中明确编写的,因此更容易调试和维护。 #### 三、ibatis快速入门 1. **准备工作** - 下载...
基于数据库,内建好数据库的model,并支持多种数据库(mysql,sql server,oracle测试通过) 半手工方式,生成的代码放在某个目录,再手工拷贝回来工作区 易于做二次开发,整个生成器本身就是java源代码,源代码核心十分精简,...
- 包括各种主流关系型数据库系统,如MySQL、Oracle、SQL Server等。 - **3.7 缓存模型** - iBATIS提供了缓存机制来提高性能。 - **3.7.1 读取只读与读写缓存(仅Java)** - 读取只读缓存不会被更新,而读写缓存...
- Ibatis 和 Ibatis3:直接修改生成的 `.java` 或 `.xml` 文件中的主键生成策略,如 MySQL 的 `auto_increment`。 - Spring_jdbc:根据策略类型修改 `DAO` 文件中的 `save()` 方法,例如针对 Oracle 的 `sequence`...
- **主键自动生成**:支持4种主键策略,包括分布式唯一ID生成器(Sequence),可根据实际需求自由配置。 - **内置代码生成器**:通过命令行或Maven插件快速生成Mapper、Model、Service和Controller层代码,支持模板...
- **identity:** 如果数据库支持自动增长,设计表时指定该功能适用于MySQL, SQLServer。 - **sequence:** 如果数据库支持sequence,主键由sequence生成,适用于Oracle。 - **native:** 根据数据库类型自动选择...
它不仅支持Lambda形式编写SQL语句,还提供了大量的自动生成代码的功能,包括CRUD操作等。 #### 二、安装与配置 1. **导入依赖**: - 首先在项目的`pom.xml`文件中添加Mybatis-Plus相关的依赖。下面是一个典型的...
- **identity**:适用于支持自动增长列的数据库,如MySQL和SQL Server。 - **sequence**:针对Oracle、DB2等支持序列的数据库。 - **uuid**:生成128位的UUID字符串主键。 **Configuration类** `Configuration`类...
在实际开发中,MyBatis-Plus 还支持主键生成策略、乐观锁、多租户、自定义全局操作、动态 SQL 等高级功能。其强大的查询构造器允许开发者无需编写过多 SQL,降低了代码维护成本。MyBatis-Plus 的活跃社区和中文文档...
MyBatis支持多种数据库,包括MySQL、Oracle、SQL Server等。 2. **MyBatis核心组件** - **SqlSessionFactory**: 是MyBatis的核心,用于创建SqlSession对象,它是线程不安全的,通常在应用启动时创建一个实例并全局...
这里的`User`是你的实体类,`Long`是主键类型。通过这种方式,你可以直接使用`save()`, `delete()`, `findById()`等方法进行CRUD操作。 对于MyBatis,你需要创建一个Mapper接口和对应的XML文件。例如,创建`...
1. 实体类:Mybatis-Plus提供自动映射功能,只需定义实体类,并通过@TableId注解指定主键字段。 2. Mapper接口:Mybatis-Plus的Mapper接口继承自BaseMapper,无需编写XML文件,直接在接口中定义CRUD方法即可。 3. ...
- **导入**:使用mysql命令或直接导入SQL文件。 ##### jdbc分段批量提交的时候出现异常怎么处理? - 使用try-catch块捕获异常。 - 在catch块内回滚事务。 - 可以使用日志记录错误详情。 ##### jdbc批量处理数据 -...
- **iBatis**(MyBatis):半ORM框架,需要手动编写SQL语句。 - **JDBC**:直接使用SQL语句进行数据库操作。 ##### Hibernate的运行原理 - 通过配置文件映射实体和数据库表的关系。 - 提供了CRUD操作、事务管理等...
- iBatis:SQL映射框架,提供数据库操作接口。 - AJAX:异步JavaScript和XML,用于Web页面的局部更新。 - DWR:允许JavaScript直接调用Java方法。 7. 论坛系统设计: - 表结构:用户(user),板块(forum),文章...
Hibernate、Ibatis、Jdbc三者的区别:Hibernate和Ibatis都是JDBC的封装框架,但Hibernate是全自动的ORM映射,而Ibatis是半自动的。 Hibernate的运行原理:Hibernate通过映射关系将Java对象和数据库表进行映射。 ...