mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
update readme
This commit is contained in:
parent
e4af3870c9
commit
2adce1b67f
74
readme_zh.md
74
readme_zh.md
@ -22,7 +22,6 @@
|
||||
**第一步:编写 Entity 实体类**
|
||||
|
||||
```java
|
||||
|
||||
@Table("tb_account")
|
||||
public class Account {
|
||||
|
||||
@ -315,6 +314,13 @@ Row account = new Row();
|
||||
account.set("id",100);
|
||||
account.set("name","Michael");
|
||||
Db.insertRow("tb_account",account);
|
||||
|
||||
|
||||
//row 是一个 hashmap
|
||||
Row row = Db.selectOneById("tb_account","id",1);
|
||||
|
||||
//Row 可以直接转换为 Entity 实体类,且性能极高
|
||||
Account account = row.toEntity(Account.class);
|
||||
```
|
||||
> Db 工具类还提供了更多 增、删、改、查和分页查询等方法。
|
||||
>
|
||||
@ -350,6 +356,72 @@ update tb_account set user_name = ? ,sex = ? where id = ?
|
||||
#params: null,1,1
|
||||
```
|
||||
|
||||
## 多主键
|
||||
|
||||
Mybatis-Flex 多主键就是在 Entity 类里有多个 `@id` 主键标识而已,比如:
|
||||
|
||||
```java
|
||||
@Table("tb_account")
|
||||
public class Account {
|
||||
|
||||
@Id((keyType=KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
@Id(keyType=KeyType.Generator, value="uuid")
|
||||
private String otherId;
|
||||
|
||||
private String userName;
|
||||
private Date birthday;
|
||||
private int sex;
|
||||
|
||||
//getter setter
|
||||
}
|
||||
```
|
||||
当我们保存数据的时候,Account 的 id 主键为自增,而 otherId 主键则通过 uuid 生成。
|
||||
|
||||
### 自定义主键生成器
|
||||
|
||||
第 1 步:编写一个类,实现 `IKeyGenerator` 接口,例如:
|
||||
|
||||
```java
|
||||
public class UUIDKeyGenerator implements IKeyGenerator {
|
||||
|
||||
@Override
|
||||
public Object generate(Object entity, String keyColumn) {
|
||||
return UUID.randomUUID().toString().replace("-", "");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
第 2 步:注册 UUIDKeyGenerator
|
||||
```java
|
||||
KeyGeneratorFactory.register("myUUID",new UUIDKeyGenerator());
|
||||
```
|
||||
|
||||
第 3 步:在 Entity 里使用 "myUUID" 生成器:
|
||||
```java
|
||||
@Table("tb_account")
|
||||
public class Account {
|
||||
|
||||
@Id(keyType=KeyType.Generator, value="myUUID")
|
||||
private String otherId;
|
||||
|
||||
//getter setter
|
||||
}
|
||||
```
|
||||
|
||||
### 使用数据库 Sequence 生成
|
||||
|
||||
```java
|
||||
@Table("tb_account")
|
||||
public class Account {
|
||||
|
||||
@Id((keyType=KeyType.Sequence, value="select SEQ_USER_ID.nextval as id from dual")
|
||||
private Long id;
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## 更多示例
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user