返回

手把手教你:轻松get Mybatis Plus新增数据技能

后端

Mybatis Plus:新增数据并返回主键ID的进阶指南

在软件开发中,数据库操作是必不可少的。Mybatis Plus 作为一款强大的 ORM 框架,可以帮助我们轻松实现各种数据库操作,其中就包括新增数据。本指南将详细介绍如何通过 Mybatis Plus 向数据库表中新增数据,并返回主键 ID,助你轻松搞定数据库新增操作!

数据库表准备就绪

为了演示新增数据,我们首先需要准备一张数据库表。这里,我们以一个用户表为例,表结构如下:

CREATE TABLE user (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  age INT NOT NULL,
  PRIMARY KEY (id)
);

实体类与 Mybatis Plus 整合

接下来,我们需要创建一个实体类来映射数据库表。这里,我们创建一个 User 类,并使用 Mybatis Plus 的注解来进行映射:

@Data
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String name;
    private Integer age;
}

新增数据操作

现在,我们已经可以开始新增数据了。在 Mybatis Plus 中,我们可以使用 insert() 方法来实现新增操作。这里,我们创建一个 UserService 类,并在其中编写新增数据的方法:

public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void addUser(User user) {
        userMapper.insert(user);
    }
}

获取新增数据的主键 ID

在新增数据成功后,我们往往需要获取新增数据的主键 ID。在 Mybatis Plus 中,我们可以使用以下两种方式来获取主键 ID:

  1. 使用 @KeySequence 注解:在实体类的 ID 字段上添加 @KeySequence 注解,并指定主键生成策略。这样,在新增数据时,主键 ID 会自动生成并赋值给实体类的 ID 字段。

  2. 使用 insert() 方法的第二个参数:在调用 insert() 方法时,我们可以将实体类作为第一个参数,并将主键 ID 作为第二个参数传入。这样,在新增数据成功后,主键 ID 会自动赋值给第二个参数。

代码示例

现在,我们来看看如何将上述步骤整合到一起,实现新增数据并返回主键 ID 的操作。这里,我们提供一个完整的代码示例:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@Mapper
public interface UserMapper {

    @Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})")
    int insert(User user);
}

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public Integer addUser(User user) {
        userMapper.insert(user);
        return user.getId();
    }
}

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/user")
    public Integer addUser(@RequestBody User user) {
        return userService.addUser(user);
    }
}

结语

通过本指南,你已经掌握了如何通过 Mybatis Plus 新增数据并返回主键 ID。现在,你可以轻松地将这些知识应用到你的项目中,实现高效的数据操作!

常见问题解答

  1. 如何指定主键生成策略?

    • 使用 @KeySequence 注解,并指定 type 属性。
  2. 如何使用 insert() 方法的第二个参数获取主键 ID?

    • 在调用 insert() 方法时,将实体类作为第一个参数,并将主键 ID 变量作为第二个参数传入。
  3. 是否可以批量新增数据?

    • 是的,Mybatis Plus 支持批量新增数据,可以使用 batch() 方法。
  4. 新增数据时如何处理空值?

    • 可以使用 @TableField(value = "字段名", el = "${字段名 == null ? '' : 字段名}") 注解来处理空值。
  5. 新增数据失败时如何处理异常?

    • 可以使用 try-catch 块来捕获异常,并进行相应的处理。