add
This commit is contained in:
1 parent
4a1756edb4
commit
6798a567a2
12 files changed
+827
No files matched your search
@@ -0,0 +1,47 @@
|
||||
# 实体类与数据库表字段的映射规则
|
||||
|
||||
仅适用于Mybatis-Plus框架。
|
||||
|
||||
- 数据库表结构字段名称、实体类字段名称,采用驼峰与下划线映射的方式。
|
||||
- `@TableField`注解中`typeHandler`等于`JacksonTypeHandler.class`时,表结构字段默认JSON类型,在spring-boot版本>=4.0应换成`Jackson3TypeHandler`。
|
||||
- 实体类字段包含`@NotNull`注解,如果字段被`@Schema`注解修饰,需要结合`defaultValue`属性判断是否需要设置默认值。
|
||||
- 主键列是否采用MySQL自增序列,取决于实体类被`@TableId`注解修饰的字段,要看其`type`属性,如果是`IdType.AUTO`则使用自增,否则不需要。
|
||||
- 如果字段被`@Schema`注解修饰,且指定了`maxLength`属性,按如下原则设置字段类型:
|
||||
- maxLength<=2000,使用VARCHAR
|
||||
- maxLength>2000且<10000,使用TEXT
|
||||
- maxLength>10000,使用LONGTEXT
|
||||
|
||||
## MySQL
|
||||
|
||||
|实体类字段类型|MySQL字段类型|
|
||||
| --- | --- |
|
||||
| String | VARCHAT(255) |
|
||||
| Long | BIGINT |
|
||||
| Integer | INT |
|
||||
| LocalDate | DATE |
|
||||
| LocalDateTime | DATETIME |
|
||||
| BigDecimal | DECIMAL(14, 2) |
|
||||
|
||||
## SQLite
|
||||
|
||||
| 实体类属性类型 | SQLite字段类型 | 说明 |
|
||||
|---|---|---|
|
||||
| `String` | `TEXT` |-|
|
||||
| `Long` | `INTEGER` |-|
|
||||
| `Integer` | `INTEGER` |-|
|
||||
| `LocalDate` | `TEXT` | 以`yyyy-MM-dd`格式字符串存储 |
|
||||
| `LocalDateTime` | `TEXT` | 以`yyyy-MM-dd HH:mm:ss`格式字符串存储 |
|
||||
| `@TableField(typeHandler = JacksonTypeHandler.class)` | `TEXT` | 配合`JacksonTypeHandler`自动序列化/反序列化 |
|
||||
| `BigDecimal` | `TEXT` | 用`TEXT`存储精确数值,避免浮点精度丢失 |
|
||||
|
||||
## PostgreSQL
|
||||
|
||||
| 实体类属性类型 | PostgreSQL字段类型 | 说明 |
|
||||
|---|---|---|
|
||||
| `String` | `TEXT` | - |
|
||||
| `Long` | `BIGINT` | - |
|
||||
| `Integer` | `INTEGER` | - |
|
||||
| `LocalDate` | `DATE` | 直接使用原生日期类型存储 |
|
||||
| `LocalDateTime` | `TIMESTAMP` | 直接使用原生时间戳类型存储 |
|
||||
| `@TableField(typeHandler = JacksonTypeHandler.class)` | `TEXT` / `JSONB` | 配合`JacksonTypeHandler`自动序列化/反序列化;`JSONB`性能更优且支持索引 |
|
||||
| `BigDecimal` | `NUMERIC` | 用`NUMERIC`存储精确数值,避免浮点精度丢失 |
|
||||
Reference in new issue
Block a user