MyBatis useGeneratedKeys 示例
useGeneratedKeys 是 MyBatis 中用于获取数据库自动生成的主键的配置。它通常与 insert 语句一起使用,以便在执行插入操作后,MyBatis 可以获取数据库生成的自增主键,并将其设置回 Java 对象的属性中。
数据库表结构
假设我们有一个 User 表,表结构如下:
CREATE TABLE User (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(50)
);
MyBatis 映射配置
假设你使用 MyBatis 的 XML 映射配置来处理 SQL 语句。
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO User (username, email)
VALUES (#{username}, #{email})
</insert>
useGeneratedKeys="true":表示 MyBatis 会自动获取数据库生成的主键。keyProperty="id":表示主键将映射到 Java 对象的id属性。
对应的 Java 类
public class User {
private Long id;
private String username;
private String email;
// Getters and setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
使用 MyBatis 插入记录
在 Java 代码中,你可以通过 MyBatis Mapper 接口调用插入方法:
public interface UserMapper {
void insertUser(User user);
}
在你的业务逻辑代码中,你可以这样插入一个用户,并获取插入后的自增主键:
User user = new User();
user.setUsername("John Doe");
user.setEmail("john.doe@example.com");
// 调用 MyBatis Mapper 方法插入用户
userMapper.insertUser(user);
// 输出自动生成的 ID
System.out.println("Generated ID: " + user.getId());
在这个例子中,insertUser 方法执行完之后,user 对象的 id 属性将会被自动设置为数据库生成的自增主键。
总结
useGeneratedKeys="true":用于告诉 MyBatis 自动获取数据库生成的主键。keyProperty="id":指定主键将填充到 Java 对象的哪个属性中。
950

被折叠的 条评论
为什么被折叠?



