Mybatis实体ID生成策略
时间: 2024-01-17 12:03:28 浏览: 73
Mybatis实体ID生成策略可以通过在实体类中定义一个ID属性,然后使用Mybatis提供的策略生成器来生成ID值。
1. 使用自增长主键
在实体类中定义一个ID属性,类型为Long,并使用数据库自增长主键来生成ID值。
```java
public class User {
private Long id;
private String name;
private Integer age;
// getter/setter 略
}
```
在Mapper.xml文件中,使用插入语句来插入数据,例如:
```xml
<insert id="insertUser" parameterType="User">
insert into user(name, age) values(#{name}, #{age})
</insert>
```
2. 使用UUID
在实体类中定义一个ID属性,类型为String,并使用Java自带的UUID类来生成ID值。
```java
public class User {
private String id;
private String name;
private Integer age;
// getter/setter 略
}
```
在Mapper.xml文件中,使用插入语句来插入数据,例如:
```xml
<insert id="insertUser" parameterType="User">
insert into user(id, name, age) values(#{id}, #{name}, #{age})
</insert>
```
在插入数据之前,需要先为实体类的ID属性赋值,例如:
```java
user.setId(UUID.randomUUID().toString());
```
3. 使用雪花算法生成ID
在实体类中定义一个ID属性,类型为Long,并使用雪花算法来生成ID值。
```java
public class User {
private Long id;
private String name;
private Integer age;
// getter/setter 略
}
```
在Mapper.xml文件中,使用插入语句来插入数据,例如:
```xml
<insert id="insertUser" parameterType="User">
insert into user(id, name, age) values(#{id}, #{name}, #{age})
</insert>
```
在插入数据之前,需要先为实体类的ID属性赋值,例如:
```java
user.setId(IdWorker.getId());
```
其中,IdWorker是一个自定义的工具类,用于生成雪花算法生成的ID值。
阅读全文