`
m635674608
  • 浏览: 5052331 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MyBatis与IBatis插入返回主键

 
阅读更多

一、MyBatis插入返回主键

在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能。 
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:

 

[html] view plain copy
 
  1. <insert id="addOracle" parameterType="Student">  
  2.         <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">    
  3.             select seq_t_student .nextval from dual    
  4.         </selectKey>   
  5.         insert into t_student(id,name)  
  6.         values(#{id},#{name})  
  7. </insert>  
  8.       

针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:

 

1.返回主键方式

[html] view plain copy
 
  1. <insert id="add" parameterType="Student">  
  2.         <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">    
  3.             SELECT LAST_INSERT_ID() AS id    
  4.         </selectKey>    
  5.           
  6.         insert into t_student(name)  
  7.         values(#{name})  
  8. </insert>  

2.设置useGeneratedKeys="true"属性方式

 

 

[html] view plain copy
 
  1. <insert id="add1" parameterType="Student"  useGeneratedKeys="true" keyProperty="id">    
  2.         insert into t_student(name)  
  3.         values(#{name})  
  4. </insert>  
分享到:
评论

相关推荐

    ibatis mybatis 分页 crud 完整代码

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

    spring boot整合mybatis利用Mysql实现主键UUID的方法

    由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface ...

    mybatis insert返回主键代码实例

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

    springmybatis

    mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...

    Mybatis-plus实现主键自增和自动注入时间的示例代码

    这样,在插入数据时,Mybatis-plus 将自动生成主键的值。 接下来,我们可以使用 `@TableField` 注解来指定自动注入时间: ```java @Data @AllArgsConstructor @NoArgsConstructor public class User { @TableId...

    Mybatis笔记.docx

    在处理数据插入时,如果数据库(如MySQL)支持自动生成主键,MyBatis提供了自动获取新插入数据主键值的功能。例如,使用`useGeneratedKeys="true"`和`keyProperty="id"`属性,可以获取到插入后生成的主键值。 对于...

    mybatis文档

    - **起源与发展**:MyBatis 起源于 Apache 的一个开源项目 iBatis,该项目最初由 Apache Software Foundation 开发。2010 年,该项目从 Apache Software Foundation 迁移到 Google Code,并更名为 MyBatis。2013 年 ...

    mybatis自动sql生成插件源码

    MyBatis是一款流行的Java持久层框架,用于简化数据库操作,其特点是将SQL语句与Java代码分离,使得SQL和业务逻辑更加清晰。本项目提供的"mybatis自动sql生成插件源码"则进一步提升了开发效率,通过拦截器...

    总结一天学会MyBatis框架所有知识.docx

    对于主键值的获取,如果表支持主键自增,MyBatis可以通过`getGeneratedKeys()`方法获取新插入数据的ID。如果表不支持自增,可以利用数据库的特性,如MySQL的`max()`函数,获取最新插入的主键值。 查询操作中,`...

    经典开源插件之ibatis

    ibatis(现称为MyBatis)是一款优秀的持久层框架,它将SQL语句与Java代码分离,支持自定义SQL查询、存储过程以及高级映射等功能。ibatis的灵活性使得开发者能够通过简单的XML或注解配置来实现对数据库的操作,这不仅...

    ibatis 增删改查(DB2版本)

    - **增加(Insert)**:使用`&lt;insert&gt;`标签定义插入操作,包括主键自增策略等。 - **删除(Delete)**:`&lt;delete&gt;`标签用于定义删除操作,可以基于特定条件执行。 - **更新(Update)**:`&lt;update&gt;`标签用于更新...

    mybatis annotations

    2. **@Insert**: 插入数据时使用,SQL语句写在注解内,#{}用于占位符,MyBatis会自动处理参数绑定。例如: ```java @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})") int insertUser(User ...

    ibatis资料(官方文档)

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

    MyBatis中文参考文档

    文档强调了在使用MyBatis过程中需要留意的一点,即从文档中复制代码到IDE或编辑器时,由于特殊字符的插入,可能会导致代码无法按预期工作。因此建议,在需要时应同时参考附带下载的代码示例或网站和邮件列表中的示例...

    MyBatis3 中文版用户指南手册

    - **insert**、**update**、**delete**:分别用于配置插入、更新和删除操作。 - **sql**:用于配置可重用的 SQL 片段。 - **parameters**:用于配置 SQL 参数。 - **resultMap**:用于配置结果映射。 - **dynamic ...

    mybatis笔记文档

    - **自增主键返回**:利用MySQL自增特性获取刚插入记录的主键。 #### 四、MyBatis高级知识点 ##### 1. 数据模型分析 - 订单商品数据模型:涉及订单表、商品表等,需分析其关联关系。 ##### 2. 结果集映射 - **...

    ibatis 之分页

    Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射框架,通过XML或注解的方式将SQL语句与Java代码分离,使开发者能更专注于业务逻辑,而不是繁琐的数据库操作。在分页查询方面,Ibatis允许我们在SQL语句中...

    ibatis实现增删改查功能demo

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

    01 MyBatis入门程序-资料

    3. 使用`@SelectKey`注解进行主键生成,提高插入效率。 4. 合理设计ResultMap,优化关联查询性能。 在"01 MyBatis入门程序-资料"中,你将找到关于这些概念的详细解释、示例代码和实践指导,帮助你快速掌握MyBatis的...

    MybatisPlus中插入数据后获取该对象主键值的实现

    // 插入数据并返回包含主键的实体 @PostMapping("add") @ResponseBody public Employee addEmployee() { Employee employee = new Employee(); employee.setLastName("chen") .setAge(18) .setEmail("10000@...

Global site tag (gtag.js) - Google Analytics