介绍 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

描述:字段是主键的注解,同@Column.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