`

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

相关推荐

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

    在Ibatis中,可以通过`&lt;selectKey&gt;`标签配合`keyProperty`指定主键属性,`resultType`指定返回类型,然后在SQL语句中调用序列生成器。 3. **自增(Identity)**: MySQL、SQL Server等数据库支持字段的自动递增...

    mybatis insert返回主键代码实例

    MyBatis 插入返回主键代码实例详解 MyBatis 是一个流行的持久层框架,它提供了多种方式来处理数据库操作。其中,插入数据并返回主键是一个非常常见的操作场景。本文将详细介绍 MyBatis 中插入返回主键代码实例的...

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

    在Ibatis的映射文件中,`&lt;insert&gt;`标签内使用`&lt;selectKey&gt;`子标签可以定义主键生成逻辑。例如: ```xml &lt;insert id="insertUser" parameterType="com.example.User"&gt; INSERT INTO users(name, email) VALUES (#{...

    详细介绍Ibatis的用法

    - **自动生成的主键**:对于INSERT操作,可以通过设置`useGeneratedKeys="true"`来启用主键自动生成。 - **存储过程**:支持调用数据库的存储过程,并通过`&lt;call&gt;`标签定义。 - **`parameterClass`和`parameterMap...

    经典开源插件之ibatis

    - **结果处理**:查询结果会自动映射成对应的Java对象,而其他类型的CRUD操作则由ibatis直接执行。 5. **ibatis的应用场景** - **简单查询**:对于简单的查询需求,ibatis提供了简洁明了的API,易于上手。 - **...

    ibatis技术总结

    - `queryForList(String id, int skip, int max)`:执行指定ID的SQL语句,并返回跳过前`skip`条记录后最多`max`条记录构成的列表。 - `queryForList(String id, Object parameterObject)`:执行指定ID的SQL语句,...

    IBATISDAO库类操作

    - **插入操作**:`insert()`方法用于将一个对象插入到数据库中,它会自动处理主键生成策略,如果表有自增主键,IBATIS会自动填充。 - **更新操作**:`update()`方法用于更新已存在的记录,它需要传入待更新的对象,...

    ibatis2.0中文API

    例如,当遇到数据类型转换错误、空指针异常或SQL执行效率低下等问题时,iBATIS提供了解决策略。比如使用`nullValue`属性处理空值,或者通过优化SQL语句来提高查询速度。同时,对于复杂的业务场景,iBATIS支持动态SQL...

    ibatis持久层简单操作

    - `SqlSession`:执行SQL语句和获取结果的主要接口,每次数据库操作后应关闭`SqlSession`以释放资源。 3. **SQL映射文件** - `&lt;select&gt;`:定义查询语句,id为唯一标识,resultType或resultMap指定返回类型。 - `...

    iBATIS-SqlMaps,ibatis映射文件

    &lt;insert&gt;元素用来执行插入操作,用于更新,而用于删除。在这些元素中,你可以通过来定义输入参数,通过来定义结果集的映射规则。 在映射文件中,iBATIS提供了强大的映射机制,比如自动类型转换、结果集嵌套处理、...

    ibatis资料(官方文档)

    - `&lt;insert&gt;`:用于插入数据,支持动态SQL和自动生成主键。 - `&lt;update&gt;`:更新数据,同样支持动态SQL。 - `&lt;delete&gt;`:删除数据,动态SQL也是其特性之一。 **3. 参数映射** 在SQL映射文件中,使用`&lt;parameterMap&gt;`...

    iBatis_SqlMap的配置总结[1]

    - **后获取主键**:对于自动增长的主键,如MySQL,`&lt;selectKey&gt;`可以在插入语句之后配置,利用`LAST_INSERT_ID()`获取自增主键。 5. **SQL参数(ParameterClass)**: - 插入操作:`parameterClass`指定传入参数...

    iBATIS开发教程.docx

    iBATIS支持自动生成的主键,可以自动将主键生成到数据库表中。自动生成的主键可以提高开发效率和减少错误。 十、parameterClass parameterClass是iBATIS的一个重要概念,用于定义参数的类型和关系。parameterClass...

    iBatis操作MySQL增删改查

    iBatis会自动处理主键生成和参数绑定,提高开发效率。 2. **删除记录**:删除操作分为删除指定记录和删除全部记录。使用`&lt;delete&gt;`标签定义删除语句,可以按ID或其他条件进行删除。在Java代码中,调用Mapper接口的...

    ibatis实现增删改查功能demo

    - **Delete**:类似地,使用@Delete注解定义删除操作,传入相应的主键或条件,Ibatis会根据这些条件生成并执行删除SQL。 - **Update**:使用@Update注解,编写更新的SQL语句,通过传入的对象属性来确定更新哪些...

    ibatis_sqlMap的配置总结

    综上所述,iBatis的SqlMap配置是其核心功能之一,涵盖了命名空间、实体别名、主键处理、参数传递以及结果集映射等多个方面。熟练掌握这些配置细节,能够显著提升iBatis项目的开发效率和代码质量。

    Ibatis框架的核心知识点

    在插入语句中,`&lt;selectKey&gt;` 通常置于 `&lt;insert&gt;` 元素内,用于在插入数据后获取数据库生成的主键。例如,对于Oracle,可以调用序列函数获取新的主键值。 4. **存储过程** Ibatis 支持调用数据库的存储过程。通过...

    ibatis 中sqlMap配置

    总结来说,iBatis中的SQLMap配置涉及到命名空间、别名、插入操作、主键获取、参数类型和结果映射等多个方面,理解和熟练掌握这些知识点对于高效地使用iBatis框架至关重要。通过合理的配置,可以有效地将Java代码与...

    ibatis文档

    3. **执行SQL语句**:通过数据库连接执行生成的SQL语句,并处理返回的结果集。 4. **结果映射**:将数据库返回的结果集映射回Java对象。 ### 安装与升级 #### JAR文件和依赖性 为了使用iBATIS SQLMap,需要将相应...

    ibatis环境搭建教程

    除了核心组件之外,ibatis还提供了一系列实用工具,如SimpleDataSource、JDBCDataSource 2.0 (也支持3.0版本)以及ScriptRunner等,这些工具可以简化数据库连接管理、脚本执行等工作。 - **SimpleDataSource**:用于...

Global site tag (gtag.js) - Google Analytics