一、MyBatis插入返回主键
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能。
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
- <insert id="addOracle" parameterType="Student">
- <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">
- select seq_t_student .nextval from dual
- </selectKey>
- insert into t_student(id,name)
- values(#{id},#{name})
- </insert>
-
针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:
1.返回主键方式
- <insert id="add" parameterType="Student">
- <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
- SELECT LAST_INSERT_ID() AS id
- </selectKey>
-
- insert into t_student(name)
- values(#{name})
- </insert>
2.设置useGeneratedKeys="true"属性方式
- <insert id="add1" parameterType="Student" useGeneratedKeys="true" keyProperty="id">
- insert into t_student(name)
- values(#{name})
- </insert>
分享到:
相关推荐
- **Create(创建)**: 创建新记录,通常通过Insert语句实现,Ibatis和Mybatis都支持自动插入主键,无需手动处理。 - **Read(读取)**: 读取记录,常用Select语句,可以使用条件查询、多表联查等。 - **Update...
由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface ...
MyBatis 插入返回主键代码实例详解 MyBatis 是一个流行的持久层框架,它提供了多种方式来处理数据库操作。其中,插入数据并返回主键是一个非常常见的操作场景。本文将详细介绍 MyBatis 中插入返回主键代码实例的...
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
这样,在插入数据时,Mybatis-plus 将自动生成主键的值。 接下来,我们可以使用 `@TableField` 注解来指定自动注入时间: ```java @Data @AllArgsConstructor @NoArgsConstructor public class User { @TableId...
在处理数据插入时,如果数据库(如MySQL)支持自动生成主键,MyBatis提供了自动获取新插入数据主键值的功能。例如,使用`useGeneratedKeys="true"`和`keyProperty="id"`属性,可以获取到插入后生成的主键值。 对于...
- **起源与发展**:MyBatis 起源于 Apache 的一个开源项目 iBatis,该项目最初由 Apache Software Foundation 开发。2010 年,该项目从 Apache Software Foundation 迁移到 Google Code,并更名为 MyBatis。2013 年 ...
MyBatis是一款流行的Java持久层框架,用于简化数据库操作,其特点是将SQL语句与Java代码分离,使得SQL和业务逻辑更加清晰。本项目提供的"mybatis自动sql生成插件源码"则进一步提升了开发效率,通过拦截器...
对于主键值的获取,如果表支持主键自增,MyBatis可以通过`getGeneratedKeys()`方法获取新插入数据的ID。如果表不支持自增,可以利用数据库的特性,如MySQL的`max()`函数,获取最新插入的主键值。 查询操作中,`...
ibatis(现称为MyBatis)是一款优秀的持久层框架,它将SQL语句与Java代码分离,支持自定义SQL查询、存储过程以及高级映射等功能。ibatis的灵活性使得开发者能够通过简单的XML或注解配置来实现对数据库的操作,这不仅...
- **增加(Insert)**:使用`<insert>`标签定义插入操作,包括主键自增策略等。 - **删除(Delete)**:`<delete>`标签用于定义删除操作,可以基于特定条件执行。 - **更新(Update)**:`<update>`标签用于更新...
2. **@Insert**: 插入数据时使用,SQL语句写在注解内,#{}用于占位符,MyBatis会自动处理参数绑定。例如: ```java @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})") int insertUser(User ...
- `<insert>`:用于插入数据,支持动态SQL和自动生成主键。 - `<update>`:更新数据,同样支持动态SQL。 - `<delete>`:删除数据,动态SQL也是其特性之一。 **3. 参数映射** 在SQL映射文件中,使用`<parameterMap>`...
文档强调了在使用MyBatis过程中需要留意的一点,即从文档中复制代码到IDE或编辑器时,由于特殊字符的插入,可能会导致代码无法按预期工作。因此建议,在需要时应同时参考附带下载的代码示例或网站和邮件列表中的示例...
- **insert**、**update**、**delete**:分别用于配置插入、更新和删除操作。 - **sql**:用于配置可重用的 SQL 片段。 - **parameters**:用于配置 SQL 参数。 - **resultMap**:用于配置结果映射。 - **dynamic ...
- **自增主键返回**:利用MySQL自增特性获取刚插入记录的主键。 #### 四、MyBatis高级知识点 ##### 1. 数据模型分析 - 订单商品数据模型:涉及订单表、商品表等,需分析其关联关系。 ##### 2. 结果集映射 - **...
Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射框架,通过XML或注解的方式将SQL语句与Java代码分离,使开发者能更专注于业务逻辑,而不是繁琐的数据库操作。在分页查询方面,Ibatis允许我们在SQL语句中...
- **Delete**:类似地,使用@Delete注解定义删除操作,传入相应的主键或条件,Ibatis会根据这些条件生成并执行删除SQL。 - **Update**:使用@Update注解,编写更新的SQL语句,通过传入的对象属性来确定更新哪些...
3. 使用`@SelectKey`注解进行主键生成,提高插入效率。 4. 合理设计ResultMap,优化关联查询性能。 在"01 MyBatis入门程序-资料"中,你将找到关于这些概念的详细解释、示例代码和实践指导,帮助你快速掌握MyBatis的...
// 插入数据并返回包含主键的实体 @PostMapping("add") @ResponseBody public Employee addEmployee() { Employee employee = new Employee(); employee.setLastName("chen") .setAge(18) .setEmail("10000@...