diff --git a/README.md b/README.md
index ac2b2af57b99490b3fd4f2b5bc122729117d100e..891697c385a51763116746be4ea0a4072e32c56c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# mybatis-enhance-actable-1.0.7.RELEASE
+# mybatis-enhance-actable-1.0.8.RELEASE
该项目是从之前写过的一个框架中抽取出来的,本身是对Mybatis做的增强功能,为了能够使习惯了hibernate框架的开发者能够快速的入手Mybatis,我给他取名叫做 “A.C.Table” 本意是自动建表的意思,A.C.Table是一个基于Spring和Mybatis的Maven项目,增强了Mybatis的功能,过配置model注解的方式来创建表,修改表结构,并且实现了共通的CUDR功能提升开发效率,目前仅支持Mysql,后续会扩展针对其他数据库的支持。
@@ -22,15 +22,18 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
15. 修复query查询方法无法返回父类字段数据的bug(版本1.0.6.RELEASE)
16. 修复原本是主键,现在依然主键,修改该字段的其他信息时会报multiple primary key defined(例如id为int(11),改为int(10)后,就可重现次bug)(版本1.0.7.RELEASE)
17. 增加对字段备注的支持,使用方式@Column的comment属性(版本1.0.7.RELEASE)
+18. 修复issues/IZ6WQ:bit类型的默认值设置失败,默认值可以使用0、1、true、false(版本1.0.8.RELEASE)
+19. 修复issues/IYTJ1:使用@Unique进行联合约束,启动项目自动创建表结构后,删除联合约束报错(版本1.0.8.RELEASE)
+20. 新增功能issues/IYW9F:mybatis.model.pack支持多包扫描","或者";"隔开(版本1.0.8.RELEASE)
**基本使用规范**
-1. 需要依赖mybatis-enhance-actable-1.0.7.RELEASE.jar
+1. 需要依赖mybatis-enhance-actable-1.0.8.RELEASE.jar
```
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
@@ -79,7 +82,7 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
@@ -106,7 +109,7 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
diff --git a/mybatis-enhance-actable/README.md b/mybatis-enhance-actable/README.md
index 0a8b22ec914b215e3b57f5d51f8ddebaaee3b696..f7b09e1b466d5b611f5774977bca2795a8000088 100644
--- a/mybatis-enhance-actable/README.md
+++ b/mybatis-enhance-actable/README.md
@@ -1,4 +1,4 @@
-# mybatis-enhance-actable-1.0.7.RELEASE
+# mybatis-enhance-actable-1.0.8.RELEASE
该项目是从之前写过的一个框架中抽取出来的,本身是对Mybatis做的增强功能,为了能够使习惯了hibernate框架的开发者能够快速的入手Mybatis,我给他取名叫做 “A.C.Table” 本意是自动建表的意思,A.C.Table是一个基于Spring和Mybatis的Maven项目,增强了Mybatis的功能,过配置model注解的方式来创建表,修改表结构,并且实现了共通的CUDR功能提升开发效率,目前仅支持Mysql,后续会扩展针对其他数据库的支持。
@@ -22,15 +22,18 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
15. 修复query查询方法无法返回父类字段数据的bug(版本1.0.6.RELEASE)
16. 修复原本是主键,现在依然主键,修改该字段的其他信息时会报multiple primary key defined(例如id为int(11),改为int(10)后,就可重现次bug)(版本1.0.7.RELEASE)
17. 增加对字段备注的支持,使用方式@Column的comment属性(版本1.0.7.RELEASE)
+18. 修复issues/IZ6WQ:bit类型的默认值设置失败,默认值可以使用0、1、true、false(版本1.0.8.RELEASE)
+19. 修复issues/IYTJ1:使用@Unique进行联合约束,启动项目自动创建表结构后,删除联合约束报错(版本1.0.8.RELEASE)
+20. 新增功能issues/IYW9F:mybatis.model.pack支持多包扫描","或者";"隔开(版本1.0.8.RELEASE)
**基本使用规范**
-1. 需要依赖mybatis-enhance-actable-1.0.7.RELEASE.jar
+1. 需要依赖mybatis-enhance-actable-1.0.8.RELEASE.jar
```
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
@@ -79,7 +82,7 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
@@ -106,7 +109,7 @@ A.C.Table是采用了Spring、Mybatis技术的Maven结构,详细介绍如下
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
```
diff --git a/mybatis-enhance-actable/pom.xml b/mybatis-enhance-actable/pom.xml
index a66d350d2e64fba8fdb1da4c49d2d87b0b1e0adb..e23382e6c46073b2fb849e8298b45e84d4d5e834 100644
--- a/mybatis-enhance-actable/pom.xml
+++ b/mybatis-enhance-actable/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.gitee.sunchenbin.mybatis.actable
mybatis-enhance-actable
- 1.0.7.RELEASE
+ 1.0.8.RELEASE
org.sonatype.oss
diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/annotation/LengthCount.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/annotation/LengthCount.java
index 2157ebdf9bbb956abfdd74d88dfa705516690e69..d7cf6247e05df410405a0b609c845d75c7589f6c 100644
--- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/annotation/LengthCount.java
+++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/annotation/LengthCount.java
@@ -30,4 +30,5 @@ public @interface LengthCount{
* @return 默认是1,0表示不需要设置,1表示需要设置一个,2表示需要设置两个
*/
public int LengthCount() default 1;
+
}
diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/constants/MySqlTypeConstant.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/constants/MySqlTypeConstant.java
index 00f58be527ccf62cecdadd630301aa5e779e7c05..6cb4dff23724e6135cd85dfa24e26eaaae95341d 100644
--- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/constants/MySqlTypeConstant.java
+++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/constants/MySqlTypeConstant.java
@@ -45,7 +45,7 @@ public class MySqlTypeConstant {
@LengthCount
public static final String BIGINT = "bigint";
- @LengthCount(LengthCount=0)
+ @LengthCount(LengthCount=1)
public static final String BIT = "bit";
@LengthCount(LengthCount=0)
diff --git a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java
index 93d83cf7ecee2ac2e8200677a1d4f16de1dd7d2f..a0ddb355e5c8f0524dbd05bdc3a2a84363cab410 100644
--- a/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java
+++ b/mybatis-enhance-actable/src/main/java/com/gitee/sunchenbin/mybatis/actable/manager/system/SysMysqlCreateTableManagerImpl.java
@@ -40,713 +40,779 @@ import com.gitee.sunchenbin.mybatis.actable.utils.ClassTools;
@Service("sysMysqlCreateTableManager")
public class SysMysqlCreateTableManagerImpl implements SysMysqlCreateTableManager {
- private static final Logger log = LoggerFactory.getLogger(SysMysqlCreateTableManagerImpl.class);
-
- @Autowired
- private CreateMysqlTablesMapper createMysqlTablesMapper;
-
- @Autowired
- private ConfigurationUtil springContextUtil;
-
- // 获取Mysql的类型,以及类型需要设置几个长度
- private static Map mySqlTypeAndLengthMap = mySqlTypeAndLengthMap();
-
- /**
- * 要扫描的model所在的pack
- */
- private static String pack = null;
-
- /**
- * 自动创建模式:update表示更新,create表示删除原表重新创建
- */
- private static String tableAuto = null;
-
- /**
- * 读取配置文件的三种状态(创建表、更新表、不做任何事情)
- */
- public void createMysqlTable() {
- // 读取配置信息
- pack = springContextUtil.getConfig(Constants.MODEL_PACK_KEY);
- tableAuto = springContextUtil.getConfig(Constants.TABLE_AUTO_KEY);
-
- // 不做任何事情
- if (!"none".equals(tableAuto) && !"update".equals(tableAuto) && !"create".equals(tableAuto)) {
- log.warn("配置mybatis.table.auto错误无法识别,当前配置只支持[none/update/create]三种类型!");
- return;
- }
-
- // 不做任何事情
- if ("none".equals(tableAuto)) {
- log.info("配置mybatis.table.auto=none,不需要做任何事情");
- return;
- }
-
- // 从包package中获取所有的Class
- Set> classes = ClassTools.getClasses(pack);
-
- // 初始化用于存储各种操作表结构的容器
- Map>> baseTableMap = initTableMap();
-
- // 循环全部的model
- for (Class> clas : classes) {
-
- // 没有打注解不需要创建表
- if (null == clas.getAnnotation(Table.class)) {
- continue;
- }
- // 构建出全部表的增删改的map
- buildTableMapConstruct(clas, baseTableMap);
- }
-
- // 根据传入的map,分别去创建或修改表结构
- createOrModifyTableConstruct(baseTableMap);
- }
-
- /**
- * 初始化用于存储各种操作表结构的容器
- *
- * @return 初始化map
- */
- private Map>> initTableMap() {
- Map>> baseTableMap = new HashMap>>();
- // 1.用于存需要创建的表名+结构
- baseTableMap.put(Constants.NEW_TABLE_MAP, new HashMap>());
- // 2.用于存需要更新字段类型等的表名+结构
- baseTableMap.put(Constants.MODIFY_TABLE_MAP, new HashMap>());
- // 3.用于存需要增加字段的表名+结构
- baseTableMap.put(Constants.ADD_TABLE_MAP, new HashMap>());
- // 4.用于存需要删除字段的表名+结构
- baseTableMap.put(Constants.REMOVE_TABLE_MAP, new HashMap>());
- // 5.用于存需要删除主键的表名+结构
- baseTableMap.put(Constants.DROPKEY_TABLE_MAP, new HashMap>());
- // 6.用于存需要删除唯一约束的表名+结构
- baseTableMap.put(Constants.DROPINDEXANDUNIQUE_TABLE_MAP, new HashMap>());
- // 7.用于存需要增加的索引
- baseTableMap.put(Constants.ADDINDEX_TABLE_MAP, new HashMap>());
- // 8.用于存需要增加的唯一约束
- baseTableMap.put(Constants.ADDUNIQUE_TABLE_MAP, new HashMap>());
- return baseTableMap;
- }
-
- /**
- * 构建出全部表的增删改的map
- *
- * @param clas package中的model的Class
- * @param baseTableMap 用于存储各种操作表结构的容器
- */
- private void buildTableMapConstruct(Class> clas, Map>> baseTableMap) {
-
- // 获取model的table注解
- Table table = clas.getAnnotation(Table.class);
-
- // 1. 用于存表的全部字段
- List