zero-acTable
介绍
zero-acTable是基于实体类创建表的开源项目。您只需要在实体类上标记相关注解就能达到创建数据库的操作,指定初始化脚本就能执行数据初始化,内置测试demo。源码地址:zero-acTable
数据库支持
mysql
功能介绍
- 兼容MP 排除字段逻辑(static、transient修饰字段和@TableField注解exist=false)
- 兼容MP @TableField、@TableName,@TableId注解
- 兼容MP @TableId注解设置自增
- 兼容hibernate @Table、@Column、@Id、@Transient注解
- 兼容hibernate @GeneratedValue注解设置自增
- 兼容swagger @ApiModel、@ApiModelProperty注解设置(表、字段)备注
- 字段上没有任何注解,支持属性名转数据库列名(默认驼峰下划线),字段类型转数据库类型
- 支持约束(主键、唯一键、索引、默认值(sql_server才具有))的创建、修改、删除
- 支持数据初始化
- 忽略表@IgnoreTable,自动建表时指定包下面需要忽略的表
- 排除父类字段@ExcludeSuperField,自动建表时排除父类相关字段
一、Maven依赖
<dependency>
<groupId>io.gitee.zero-wsh</groupId>
<artifactId>acTable</artifactId>
<version>2.1.1</version>
</dependency>
二、YAML配置
zero.ac-acTable.entity-package=io.gitee.zerowsh.actable.demo.entity.mysql
zero.ac-acTable.model=ADD_OR_UPDATE_OR_DEL
zero.ac-acTable.before-script=db/*.sql
zero.ac-acTable.after-script=db/*.sql
三、注解说明
1、类注解@AcTable,设置表相关信息
属性名 | 描述 | 默认值 | 取值范围 |
---|
name | 表名称 | | |
comment | 表注释 | | |
turn | 当字段没有标记@AcColumn注解时,java转数据库的方式 | TurnEnums.DEFAULT | TurnEnums |
2、字段注解@AcColumn,设置列名相关信息
属性名 | 描述 | 默认值 | 取值范围 |
---|
exclude | 排除该字段 | false | true/false |
name | 列名称 | | |
order | 字段排序 | 0 | 整数 |
comment | 列注释 | | |
length | 字段长度 | 255 | |
decimalLength | 小数位数 | 0 | |
isNull | 是否为空 | true | true/false |
isKey | 是否主键 | false | true/false |
isAutoIncrement | 是否自增 | false | true/false |
defaultValue | 默认值 | default_value | |
type | 字段类型 | ColumnTypeEnums.DEFAULT | ColumnTypeEnums |
3、索引@Index,设置表索引
属性名 | 描述 | 默认值 | 取值范围 |
---|
value | 索引名后缀,前缀固定idx_ | | |
columns | 列名 | | |
4、唯一键@Unique,设置表唯一键
属性名 | 描述 | 默认值 | 取值范围 |
---|
value | 唯一键后缀,前缀固定uk_ | | |
columns | 列名 | | |
5、@ExcludeSuperField,排除父级字段
属性名 | 描述 | 默认值 | 取值范围 |
---|
value | 排除父类相关字段 | | |
6、@IgnoreTable,忽略表的注解
7、@UpdateColumnName,修改列名
属性名 | 描述 | 默认值 | 取值范围 |
---|
value | 需要修改的列名,采用-> 进行分隔,左边是以前的字段,右边是改过后的字段 | | |
四、注意事项
- 有初始化脚本时,必须保证可重复执行,多个插入语句默认使用endFlag隔开
- 有初始化脚本时,在字符串和注释中不要出现sql分割符字样
- 有初始化脚本时,并且使用了druid连接池filters不要配置wall