Files
prompts/orm.md
V-LiuShuang dbaabdea04 add
2026-07-24 13:25:51 +08:00

44 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实体类与数据库表书写规范
- 数据库表结构字段名称、实体类字段名称,采用驼峰与下划线映射的方式。
- 实体类字段包含`@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实体类示例
[javabean.md](./javabean.md#数据库实体类示例)
## 枚举类代码示例
[enums.md](./enums.md)