# 实体类与数据库表书写规范 - 数据库表结构字段名称、实体类字段名称,采用驼峰与下划线映射的方式。 - 实体类字段包含`@NotNull`注解,需要结合`@Schema`注解中的`defaultValue`属性判断是否需要设置默认值。 - 主键列是否采用MySQL自增序列,取决于实体类被`@TableId`注解修饰的字段,要看其`type`属性,如果是`IdType.AUTO`则使用自增,否则不需要。 - 如果`@Schema`注解指定了`maxLength`属性,按如下原则设置字段类型: - 数值小于或等于2000,使用VARCHAR - 数值大于2000且小于10000,使用TEXT - 数值大于10000,使用LONGTEXT - 实体类的属性类型与表结构的字段类型映射关系: - String:默认VARCHAT(255) - Long:默认BIGINT - Integer:默认INT - LocalDate:默认DATE - LocalDateTime:默认DATETIME - `@TableField`注解中`typeHandler`等于`JacksonTypeHandler.class`时,表结构字段默认JSON类型 - BigDecimal:默认DECIMAL(14, 2) 请根据以上规范,结合下文代码示例,生成建表语句和Java实体类代码。 ## MySQL建表语句示例 ```sql CREATE TABLE `example_table` ( `id` BIGINT NOT NULL COMMENT 'ID', `str_field` VARCHAR(32) NOT NULL COMMENT '字符串`, `int_field` INT DEFAULT NULL COMMENT '整数`, `long_field` BIGINT DEFAULT NULL COMMENT '长整数`, `decimal_field` DECIMAL(14, 2) DEFAULT NULL COMMENT '高精度浮点数`, `date_field` DATE NOT NULL COMMENT '日期类型`, `time_field` DATETIME NOT NULL COMMENT '日期类型`, `state` VARCHAR(32) NOT NULL COMMENT '状态:only_read、read_write', `json_field` JSON DATETIME NULL COMMENT 'JSON类型' PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='示例表'; ``` ## Java实体类示例 [java-bean.md](./java-bean.md#数据库实体类示例) ## 枚举类代码示例 [java-enums.md](./java-enums.md)