# 实体类与数据库表字段的映射规则 仅适用于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`存储精确数值,避免浮点精度丢失 |