MyBatis 3.3.1 批量插入多行回写自增id

本文介绍了MyBatis 3.3.1如何实现批量插入多行并回写自增id的功能。详细讲解了实现原理,包括使用特定SQL语法,并列举了一步步的实战操作,包括MySQL建表、Maven依赖配置、User实体类、Mapper XML文件和 Dao 实现的编写,以及测试用例的执行,展示了在实际操作中如何成功利用这一特性。
摘要由CSDN通过智能技术生成

MyBatis 3.3.1支持批量插入多行回写自增id的功能,具体介绍请参看Support insert multiple rows and write-back id #547

实现原理

其实现原理就是一条SQL语句:

INSERT INTO tablename (column-a, [column-b, ...])
VALUES ('value-1a', ['value-1b', ...]),
('value-2a', ['value-2b', ...]),

支持上述SQL语法特性的数据库有:DB2, SQL Server (since version 10.0 - i.e. 2008), PostgreSQL (since version 8.2), MySQL, sqlite (since version 3.7.11) and H2。

实战

本文通过一个示例来演示如何使用MyBatis 3.3.1这一新特性。

准备工作

MySQL建表SQL:

CREATE TABLE `tb_user` (
  `id` BIGINT(12) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(20) NOT NULL,
  `password` VARCHAR(20) NOT NULL,
  `age` SMALLINT(3) NOT NULL,
  `email` VARCHAR(40) NOT NULL,
  `gender` SMALLINT(2) NOT NULL DEFAULT '0',
  <
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
MyBatis Plus 中,插入数据并返回自增 ID 可以通过以下步骤实现: 1. 创建一个实体类,用于映射数据库表的字段和属性。 2. 在实体类中,标注 `@TableName` 注解,指定对应的数据库表名。 3. 在实体类中,使用 `@TableId` 注解标注主键字段,并设置 `@TableId(type = IdType.AUTO)`,表示使用数据库自增主键。 4. 调用 MyBatis Plus 提供的 `insert` 方法插入数据,插入成功后,自增 ID 将会被赋值到实体类对应的字段上。 以下是一个示例代码: ```java import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; @Repository public interface UserMapper extends BaseMapper<User> { } @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public boolean saveUser(User user) { return save(user); } } @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; // 省略 getter 和 setter } ``` 在上述示例中,`User` 类是一个实体类,对应数据库中的 `user` 表。`id` 字段使用 `@TableId(type = IdType.AUTO)` 注解标注为自增主键。 在 `UserServiceImpl` 类中,调用 `save` 方法插入数据,插入成功后,自增 ID 将会被赋值到 `user` 对象的 `id` 字段上。 你可以根据你的需求在 `UserServiceImpl` 类中添加其他方法,如查询、更新等。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值