开发中经常遇到插入一条数据之后,需要获得新插入记录自增长生成的id。方法如下:
在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_name, spares_type_id,spares_spec) values(#{id},#{name},#{typeId},#{spec}) </insert>
Mybatis执行完插入语句后,自动将自增长值赋值给对象Spares的属性id。因此,可通过Spares对应的getter方法获取!
@RequestMapping(value = "/insert") @ResponseBody public JsonResponse insert(Spares spares) { int count = sparesService.insert(spares); System.out.println("共插入" + count + "条记录!" + "\n刚刚插入记录的主键自增长值为:" + spares.getId());
相关推荐
在MyBatis中,获取插入记录的自增长字段值是一个常见的问题,特别是在使用自动增长字段的数据库管理系统中。下面,我们将详细介绍MyBatis获取插入记录的自增长字段值的方法。 首先,我们需要在MyBatis的Mapper文件...
总之,通过MyBatis的`useGeneratedKeys`和`keyProperty`特性,我们可以方便地在插入记录后获取自增长字段的值,从而简化了数据库操作的复杂性,提高了代码的可读性和可维护性。在实际开发中,根据具体需求,还可以...
在数据库操作中,经常需要插入数据到表中,而表中的主键字段通常是自增长的。当数据插入成功后,往往需要获取这个自增长的ID,以便于后续的业务处理或者关联其他表的数据。因此,在MyBatis中提供了一种机制来获取自...
其中,`id`通常被设为自动增长字段,以便数据库自动生成唯一标识。 2. **结果映射(Result Map)**: 在`mapper.xml`文件中,定义了`resultMap`来指定字段与实体类属性的对应关系。这样MyBatis可以正确地将查询...
+ "\n刚刚插入记录的主键自增长值为:" + spares.getId()); } ``` 此外,还有一种方法是使用`<selectKey>`标签。`<selectKey>`允许在插入语句之前或之后执行一个查询,以获取自增主键。例如: ```xml select ...
提供了多种主键生成策略,包括 Identity(自动增长)、Sequence(序列)、雪花算法等,可以根据不同的数据库环境选择合适的策略。 7. **自定义全局配置**: 可以通过配置文件或注解来设定全局的配置,如逻辑删除...
主键自增是数据库表设计中常见的需求,Mybatis-Plus支持主键自动增长,无需手动设置,这在插入新记录时尤其方便。 自动填充是指在特定操作(如插入或更新)时,系统自动填充某些字段。Mybatis-Plus允许用户定义一些...
2. **主键自动生成策略**:MyBatis-Plus支持多种主键生成策略,包括Identity(自动增长主键)、雪花算法、序列等,可以根据不同的数据库类型选择合适的策略。 3. **条件构造器**:MyBatis-Plus的QueryWrapper和...
本文将详细讲解如何在MyBatis中实现Oracle的自增序列,并配置MyBatis以支持Oracle的主键自增长。 首先,你需要在Oracle数据库中创建一个序列对象。例如,你可以创建一个名为`SEQ_TABLE`的序列: ```sql CREATE ...
在使用 MyBatis-Plus 的 `insert` 方法时,可能会遇到一些问题,特别是当尝试插入新记录时,可能会遇到“id 值不存在异常”。这个问题通常是由于 MyBatis-Plus 自动为实体类中的 `id` 字段生成默认值,而这个默认值...
这个特性在处理像MySQL、SQL Server等支持自动增长字段的数据库时特别有用,可以避免进行额外的查询来获取新插入记录的主键。本文将深入探讨`useGeneratedKeys`的工作原理以及它在批量插入和`ON DUPLICATE KEY ...
4. **主键生成策略**:MyBatis Plus提供了多种主键生成策略,如Identity(自动增长)、Increment(自增)、 ASSIGN_ID(由数据库生成)等,可以根据不同的数据库类型选择合适的方式。 5. **数据权限控制**:可以...
MP支持多种主键生成策略,包括Identity(自动增长ID)、Sequence(序列)、雪花算法等。这使得开发者可以根据不同的数据库环境灵活选择。 6. **数据权限控制**: MP提供了一套简单易用的数据权限控制机制,可以...
这将设置ID类型为自动增长,以及启用下划线到驼峰命名规则的映射。 接着,创建实体类(Entity)并继承`BaseModel`。`BaseModel`是MyBatis-Plus提供的基类,包含了一些通用字段如创建时间和更新时间。例如: ```...
在本例中,我们创建了一个名为`student`的表,包含`id`(主键,自动增长),`name`(姓名)和`age`(年龄)三个字段。表结构如下: ```sql CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` ...
4. **主键生成策略**:MBP内置了多种主键生成策略,如Identity(自动增长),雪花算法等。 5. **批量操作**:支持批量插入、更新数据,提高数据库操作性能。 6. **乐观锁**:支持在更新时自动添加版本号或时间戳,...
在上面的代码中,`selectKey` 元素将获取最后插入的自动增长的主键值,并将其赋值给参数对象的 `id` 字段。 在实际应用中,我们可能需要在插入数据之后执行其他操作,例如,获取插入后的主键值,以便进行下一步的...
3. **主键自增**:对于自动增长的主键,MP可以自动处理,无需手动设置。 4. **批量插入**:支持单表数据的批量插入,提高数据导入效率。 5. **查询Wrapper**:提供了QueryWrapper、UpdateWrapper等工具类,使得条件...
3. `insert`:定义插入SQL,可以处理自动增长的主键。 4. `update`:定义更新SQL。 5. `delete`:定义删除SQL。 6. `resultMap`:结果映射,定义了如何将数据库查询结果转换为Java对象。 7. `parameterMap`:参数...