`

iBatis的insert返回主键

    博客分类:
  • JAVA
 
阅读更多

让iBatis中的insert返回主键,一般是自增主键

 

<!-- 为了使insert操作能够返回插入记录的id,必须为insert写一个selectKey -->

<!--

   下面是针对Oracle的写法,Oracle没有autoincrement,而是用触发器实现的

   CURRVAL是在触发器中定义的

-->

<insert id="insertRemark" parameterClass="RemarkInfo">

   insert into SGS_REMARK(REMARK) values(#remark#)

   <selectKey resultClass="int" keyProperty="id" >

    SELECT S_SGS_REMARK.CURRVAL AS ID FROM DUAL

   </selectKey>

</insert>

 

<!-- 下面是针对MySQL的写法 -->

 

Xml代码

 

 <insert id="Order_insert" parameterClass="com.micromall.dao.order.Order" >
    insert into t_order (ORDER_ID, user_ID, SHOP_ID, SHOP_NAME, USER_NAME, FREIGHT, DISCOUNT,
      TOTAL_CONFER_FEE, TOTAL_SELL_FEE, STATUS, PAY_TIME, SEND_TIME, QUE_TIME, CLOSE_TIME,
      REFUND_APPLY_TIME, REFUND_TIME, REFUND_FEE, REFUND_REASON, REFUND_REMARK, SETTLE_TRADE_NO,
      QUE_TRADE_NO, REMARK_SELL, REMARK_SERVICE, CREATE_TIME, CREATE_USER, UPDATE_TIME, UPDATE_USER)
    values (#orderId#, #userId#, #shopId#, #shopName#, #userName#, #freight#, #discount#,
      #totalConferFee#, #totalSellFee#, #status#, #payTime#, #sendTime#, #queTime#, #closeTime#,
      #refundApplyTime#, #refundTime#, #refundFee#, #refundReason#, #refundRemark#, #settleTradeNo#,
      #queTradeNo#, #remarkSell#, #remarkService#, #createTime#, #createUser#, #updateTime#,
      #updateUser#)
      
       <selectKey resultClass="long" keyProperty="orderId">  
        select LAST_INSERT_ID()   
     </selectKey>
     
  </insert>

 

分享到:
评论

相关推荐

    mybatis insert返回主键代码实例

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

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

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

    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 (#{...

    IBATISDAO库类操作

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

    经典开源插件之ibatis

    - **创建数据库与表结构**:根据示例中的SQL语句创建名为`itcast`的数据库及`student`表,表中包括`id`(主键自增长)、`firstname`和`lastname`三个字段。 - **实体类定义**:定义一个名为`Student`的Java类,...

    ibatis_sqlMap的配置总结

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

    iBatis_SqlMap的配置总结[1]

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

    ibatis 中sqlMap配置

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

    详细介绍Ibatis的用法

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

    ibatis2.0中文API

    此外,还可以使用`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`标签来定义SQL语句,它们可以根据对象属性动态生成对应的SQL命令。 接着,解决方案详解通常涵盖了一些常见问题和最佳实践。例如,当遇到数据类型...

    ibatis持久层简单操作

    - `&lt;insert&gt;`:插入记录,使用`useGeneratedKeys`和`keyProperty`获取自增主键。 - `&lt;update&gt;`:更新记录。 - `&lt;delete&gt;`:删除记录。 4. **Mapper接口** - 为了方便Java代码的调用,可以创建一个对应的Mapper...

    ibatis资料(官方文档)

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

    iBATIS-SqlMaps,ibatis映射文件

    在映射文件中,iBATIS提供了强大的映射机制,比如自动类型转换、结果集嵌套处理、自动生成主键等。例如,和可以将查询结果的列名映射到Java对象的属性上,元素可以根据特定列的值来决定如何映射结果集,实现多态查询...

    iBatis操作MySQL增删改查

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

    Ibatis框架的核心知识点

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

    ibatis文档

    包括INSERT、UPDATE、DELETE和SELECT四种类型,分别对应不同的数据库操作。 #### SQL语句 在映射文件中,可以通过`&lt;sql&gt;`元素定义具体的SQL语句,支持参数化查询和动态SQL。 #### 自动生成的主键 对于需要自增主键...

    ibatis技术总结

    13. ****:定义主键生成策略,常用于自动填充主键字段。 这些标签共同构成了iBatis的SQL映射规则体系,确保了框架能够正确执行各种数据库操作。 #### 7. SQL参数详解 iBatis支持多种类型的SQL参数,包括基本类型...

    ibatis实现增删改查功能demo

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

    ibatis mybatis 分页 crud 完整代码

    - **Create(创建)**: 创建新记录,通常通过Insert语句实现,Ibatis和Mybatis都支持自动插入主键,无需手动处理。 - **Read(读取)**: 读取记录,常用Select语句,可以使用条件查询、多表联查等。 - **Update...

    ibatis环境搭建教程

    - **&lt;selectKey&gt;`**:用于生成主键,在某些数据库中可能需要在插入记录前先获取自增主键值。 - **&lt;insert&gt;`**:定义插入操作,可以与`parameterMap`结合使用以支持复杂的参数传递。 - **&lt;resultClass&gt;`**:定义查询...

Global site tag (gtag.js) - Google Analytics