介绍 ACTable 注解包相关类详解(更多详细描述可点击查看源码注释)
@Table
描述:表名注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
name | String | 否 | “” | 不填默认根据驼峰转换法转换表名,例如ProductLabel,自动转为product_label |
value | ||||
comment | String | 否 | “” | 表注释,也可以使用@TableComment注解代替 |
charset | MySqlCharsetConstant | 否 | MySqlCharsetConstant.DEFAULT | 表字符集,也可以使用@TableCharset注解代替,默认值代表不填,以数据库自有的默认值为准 |
engine | MySqlEngineConstant | 否 | MySqlEngineConstant.DEFAULT | 表存储引擎,也可以使用@TableEngine注解代替,默认值代表不填,以数据库自有默认值为准 |
isSimple | boolean | 否 | false | 是否开启simple模式配置,默认不开启,开启后Field不写注解@Column也可以采用默认的驼峰转换法创建字段 |
excludeFields | String[] | 否 | “serialVersionUID” | 需要排除的属性名,排除掉的属性不参与建表 |
@IgnoreTable
描述:忽略当前实体建表逻辑,设置在实体类上,如果设置了那么该实体不参与建表更新表
@EnableTimeSuffix
描述:支持表名添加时间后缀
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | boolean | 是 | true | 开启时间后缀 |
pattern | String | 是 | DateTimeFormatConstant.DATE_MONTH | 时间后缀格式 |
@TableCharset
描述:表字符集注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | MySqlCharsetConstant | 是 | 表字符集,同@Table.charset()属性 |
@TableEngine
描述:表存储引擎注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | MySqlEngineConstant | 是 | 表存储引擎,同@Table.engine()属性 |
MySqlCharsetConstant
字符集可选枚举值列表 | 描述 |
---|---|
DEFAULT | 默认值代表不填,以数据库自有默认值为准 |
UTF8 | utf8字符编码集 |
ASCII | ascii字符编码集 |
…….. | 太多不一一列举,自行查看代码 |
MySqlEngineConstant
存储引擎可选枚举值列表 | 描述 |
---|---|
DEFAULT | 默认值代表不填,以数据库自有默认值为准 |
InnoDB | InnoDB存储引擎 |
MEMORY | MEMORY存储引擎 |
…….. | 太多不一一列举,自行查看代码 |
@TableComment
描述:表注释注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 是 | 表注释,同@Table.comment()属性 |
@Column
描述:字段注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 否 | “” | 字段名 |
name | ||||
type | MySqlTypeConstant | 否 | MySqlTypeConstant.DEFAULT | 字段类型,也可以使用@ColumnType替代,默认值标识不填,使用ACTable自动类型转换规则 |
length | int | 否 | 255 | 字段的默认长度,默认255时,会去读取该类型实际的默认长度 |
decimalLength | int | 否 | 0 | 小数点保留位数,默认为0时,会去读取该类型实际的小说点默认长度 |
isNull | boolean | 否 | true | 是否为可以为null,true是可以,false是不可以,默认为true,也可以使用@IsNotNull来替代 |
isKey | boolean | 否 | false | 是否是主键,默认false,也可以使用@IsKey来代替 |
isAutoIncrement | boolean | 否 | false | 是否自动递增,默认false,也可以使用@IsAutoIncrement来替代 |
defaultValue | String | 否 | ColumnUtils.DEFAULTVALUE | 默认值,默认为DEFAULT,表示不填,默认为null,可用@DefaultValue替代 只有String和Boolean采用字符串传参的方式使用的是’#{}’,其他类型均使用原生方式拼接sql使用的是’${}’ |
comment | String | 否 | “” | 数据表字段备注,也可用@ColumnComment替代 |
@IgnoreUpdate
描述:标注当前字段参与创建不参与更新,解决使用@DefaultValue(“NULL ON UPDATE CURRENT_TIMESTAMP”)时当前字段每次重启项目都会进行更新操作的问题
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 是 | 是否忽略对当前字段的更新操作 |
MySqlTypeConstant
字段类型可选枚举值列表 | 描述 |
---|---|
DEFAULT | 默认值标识不填,使用ACTable自动类型转换规则 |
INT | int类型,默认长度11,没有小数点长度 |
VARCHAR | varchar类型,默认长度255,没有小数点长度 |
DECIMAL | decimal类型,默认长度10,小数点默认长度2 |
TEXT | text类型,不需要设置长度 |
…….. | 太多不一一列举,自行查看代码,枚举中lengthCount表示需要几个长度(0:不需要设置长度,1:需要设置一个长度,2:需要设置小数点长度),lengthDefault表示默认长度,decimalLengthDefault表示小数点默认长度 |
ACTable自动类型转换规则
Java数据类型 | 对应Mysql数据类型 |
---|---|
java.lang.String | MySqlTypeConstant.VARCHAR |
java.lang.Long | MySqlTypeConstant.BIGINT |
java.lang.Integer | MySqlTypeConstant.INT |
java.lang.Boolean | MySqlTypeConstant.BIT |
java.math.BigInteger | MySqlTypeConstant.BIGINT |
java.lang.Float | MySqlTypeConstant.FLOAT |
java.lang.Double | MySqlTypeConstant.DOUBLE |
java.lang.Short | MySqlTypeConstant.SMALLINT |
java.math.BigDecimal | MySqlTypeConstant.DECIMAL |
java.sql.Date | MySqlTypeConstant.DATE |
java.util.Date | MySqlTypeConstant.DATE |
java.sql.Timestamp | MySqlTypeConstant.DATETIME |
java.sql.Time | MySqlTypeConstant.TIME |
long | MySqlTypeConstant.BIGINT |
int | MySqlTypeConstant.INT |
boolean | MySqlTypeConstant.BIT |
float | MySqlTypeConstant.FLOAT |
double | MySqlTypeConstant.DOUBLE |
short | MySqlTypeConstant.SMALLINT |
char | MySqlTypeConstant.VARCHAR |
@ColumnComment
描述:字段备注注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 是 | 字段备注,同@Column.comment()属性 |
@DefaultValue
描述:字段默认值注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 是 | 字段默认值,同@Column.defaultValue()属性 |
@IsAutoIncrement
描述:字段自增的注解,同@Column.isAutoIncrement
@IsKey
@IsNotNull
描述:字段不为空的注解,同@Column.isNull()=false
@ColumnType
描述:字段类型注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | MySqlTypeConstant | 否 | MySqlTypeConstant.DEFAULT | 字段类型,也可以使用@Column.type替代,默认值标识不填,使用ACTable自动类型转换规则 |
length | int | 否 | 255 | 字段的默认长度,默认255时,会去读取该类型实际的默认长度 |
decimalLength | int | 否 | 0 | 小数点保留位数,默认为0时,会去读取该类型实际的小说点默认长度 |
@Index
描述:字段设置为索引的注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 否 | “” | 索引的名字,不设置默认为{actableidx当前标记字段名@Column的name},如果设置了名字例如unionname,系统会默认在名字前加actable_idx前缀,也就是actable_idx_union_name |
columns | String[] | 否 | {} | 要建立索引的字段名,不设置默认为当前标记字段名@Column的name,可设置多个建立联合索引{“login_mobile”,”login_name”} |
@Unique
描述:字段设置唯一约束的注解
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | String | 否 | “” | 唯一约束的名字,不设置默认为{actableuni当前标记字段名@Column的name},如果设置了名字例如unionname,系统会默认在名字前加actable_uni前缀,也就是actable_uni_union_name |
columns | String[] | 否 | {} | 唯一约束的字段名,不设置默认为当前标记字段名@Column的name,可设置多个建立联合唯一{“login_mobile”,”login_name”} |
@IsNativeDefValue
描述:是否开启默认值的原生模式
属性 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
value | boolean | 否 | true | 如果不打该注解,系统默认会根据字段类型来决定,目前只有String和Boolean采用字符串传参的方式使用的是’#{}’,其他类型均使用原生方式拼接sql使用的是’${}’来使用默认值配置的值,如果使用了这个注解强制通过这个注解来指定使用原生模式还是字符串模式。 如果设置false,那么此时value=”aa” 即sql为 DEFAULT “aa” 如果设置true,此时如果value=”CURRENT_TIMESTAMP”,即sql为 DEFAULT CURRENT_TIMESTAMP |