mybatis 插入自动生成主键id
时间: 2024-10-20 14:10:20 浏览: 54
MyBatis是一个轻量级的对象关系映射(Object-Relational Mapping,ORM)框架,它允许你在操作数据库时使用SQL语句。当你需要插入数据并期望数据库自动生成主键ID时,MyBatis提供了一种简单的方式来处理。
1. **配置POJO(Plain Old Java Object)**:首先,在Java实体类(Entity)中,你需要声明主键字段为`@Id`和`@GeneratedValue(strategy=GenerationType.IDENTITY)`注解。`@GeneratedValue`告诉MyBatis使用数据库的内置机制生成新的ID。
```java
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 其他字段...
}
```
2. **Mapper XML文件**:在对应的Mapper XML文件中,使用`insert`标签插入数据,不需要显式指定ID。例如:
```xml
<mapper namespace="com.example.mapper.UserMapper">
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user (name, email) VALUES (#{name}, #{email})
</insert>
</mapper>
```
3. **SQL插入语句**:执行插入时,MyBatis会自动将`@GeneratedValue`字段留空,让数据库负责生成新的ID。
4. **保存对象到数据库**:最后,通过`SqlSession`的`insert`方法执行插入操作。例如:
```java
SqlSession session = sqlSessionFactory.openSession();
User user = new User();
// 设置其他属性...
session.insert("com.example.mapper.UserMapper.insertUser", user);
```
阅读全文