A.CTable基于 Spring 和 Mybatis 的 Maven 項(xiàng)目
A.CTable 是一個(gè)基于 Spring 和 Mybatis 的 Maven 項(xiàng)目,增強(qiáng)了 Mybatis 的功能,通過配置model 注解的方式來創(chuàng)建表,修改表結(jié)構(gòu),提供通用的單表 CUDR 工具,支持 SpringBoot 以及傳統(tǒng)的 SpringMvc 項(xiàng)目結(jié)構(gòu),簡(jiǎn)單配置即可目前支持 Mysql。該框架是為了能夠使習(xí)慣了 hibernate 框架的開發(fā)者能夠快速的入手 Mybatis,同時(shí)能夠兼容tk.mybatis,如需使用依賴tk.mybatis的pom依賴即可,目前僅支持Mysql,后續(xù)會(huì)擴(kuò)展針對(duì)其他數(shù)據(jù)庫的支持。
代碼用途講解
1. MySqlCharsetConstant.java這個(gè)對(duì)象里面配置的是mysql的數(shù)據(jù)類型,這里配置的類型越多,意味著創(chuàng)建表時(shí)能使用的類型越多
2. @Column.java也是一個(gè)自定義的注解,用于標(biāo)記model中的字段上,作為創(chuàng)建表的依據(jù)如不標(biāo)記,不會(huì)被掃描到,有幾個(gè)屬性用來設(shè)置字段名、字段類型、長(zhǎng)度等屬性的設(shè)置,詳細(xì)請(qǐng)看代碼上的注釋
3. @Table.java也是一個(gè)自定義的注解,用于標(biāo)記在model對(duì)象上,有一個(gè)屬性name,用于設(shè)置該model生成表后的表名,如不設(shè)置該注解,則該model不會(huì)被掃描到
4. @Index.java是一個(gè)自定義注解,用于標(biāo)記在model中的字段上,表示為該字段創(chuàng)建索引,有兩個(gè)屬性一個(gè)是設(shè)置索引名稱,一個(gè)是設(shè)置索引字段,支持多字段聯(lián)合索引,如果都不設(shè)置默認(rèn)為當(dāng)前字段創(chuàng)建索引
5. @Unique.java是一個(gè)自定義注解,用于標(biāo)記在model中的字段上,表示為該字段創(chuàng)建唯一約束,有兩個(gè)屬性一個(gè)是設(shè)置約束名稱,一個(gè)是設(shè)置約束字段,支持多字段聯(lián)合約束,如果都不設(shè)置默認(rèn)為當(dāng)前字段創(chuàng)建唯一約束
6. @TableComment用來配置表的注釋,可用來替代@Table的comment
7. @IsKey/@IsAutoIncrement/@IsNotNull用來代替 @Column中的isKey/isAutoIncrement/isNull三個(gè)屬性,當(dāng)然舊的配置方式仍然是支持的
8. @ColumnComment字段注釋,用來替代@Column中的comment
9. @DefaultValue字段默認(rèn)值,用來替代@Column中的defaultValue
10.@ColumnType字段類型,用來替代@Column中的type,取值范圍MySqlTypeConstant.java中的枚舉
11.@TableCharset表字符集,用來替代@Table中的charset,取值范圍MySqlCharsetConstant.java中的枚舉
12.@TableEngine表引擎類型,用來替代@Table中的engine,取值范圍MySqlEngineConstant.java中的枚舉
13.支持javax.persistence包中的部分注解,用于對(duì)tk.mybatis做支持
javax.persistence.Column 同 com.gitee.sunchenbin.mybatis.actable.annotation.Column
javax.persistence.Column.name 同 com.gitee.sunchenbin.mybatis.actable.annotation.Column.name
javax.persistence.Column.length 同 com.gitee.sunchenbin.mybatis.actable.annotation.Column.length
javax.persistence.Column.scale 同 com.gitee.sunchenbin.mybatis.actable.annotation.Column.decimalLength
javax.persistence.Table 同 com.gitee.sunchenbin.mybatis.actable.annotation.Table
javax.persistence.Id 同 com.gitee.sunchenbin.mybatis.actable.annotation.IsKey
13.系統(tǒng)啟動(dòng)后會(huì)去自動(dòng)調(diào)用SysMysqlCreateTableManagerImpl.java的createMysqlTable()方法,沒錯(cuò),這就是核心方法了,負(fù)責(zé)創(chuàng)建、刪除、修改表。評(píng)論
圖片
表情
