@Transactional @Service(value="sysMysqlCreateTableManager") public class SysMysqlCreateTableManagerImpl extends java.lang.Object implements SysMysqlCreateTableManager
| 限定符和类型 | 字段和说明 |
|---|---|
private CreateMysqlTablesMapper |
createMysqlTablesMapper |
private static org.slf4j.Logger |
log |
private static java.lang.String |
pack
要扫描的model所在的pack
|
private ConfigurationUtil |
springContextUtil |
private static java.lang.String |
tableAuto
自动创建模式:update表示更新,create表示删除原表重新创建
|
| 构造器和说明 |
|---|
SysMysqlCreateTableManagerImpl() |
| 限定符和类型 | 方法和说明 |
|---|---|
private void |
addFieldsByMap(java.util.Map<java.lang.String,TableConfig> addTableMap)
根据map结构对表中添加新的字段
|
private void |
addIndexByMap(java.util.Map<java.lang.String,TableConfig> addIndexMap)
根据map结构创建索引
|
private void |
addUniqueByMap(java.util.Map<java.lang.String,TableConfig> addUniqueMap)
根据map结构创建唯一约束
|
private void |
buildTableMapConstruct(java.lang.Class<?> clas,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> baseTableMap)
构建出全部表的增删改的map
|
private void |
checkTableName(java.util.List<java.lang.String> tableNames,
java.lang.Class<?> clas) |
void |
createMysqlTable()
读取配置文件的三种状态(创建表、更新表、不做任何事情)
|
private void |
createOrModifyTableConstruct(java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> baseTableMap)
根据传入的map创建或修改表结构
|
private void |
createTableByMap(java.util.Map<java.lang.String,TableConfig> newTableMap)
根据map结构创建表
|
private void |
dropFieldsKeyByMap(java.util.Map<java.lang.String,TableConfig> dropKeyTableMap)
根据map结构删除要变更表中字段的主键
|
private void |
dropIndexAndUniqueByMap(java.util.Map<java.lang.String,TableConfig> dropIndexAndUniqueMap)
根据map结构删除索引和唯一约束
|
private java.util.List<java.lang.Object> |
getAddFieldList(java.util.List<java.lang.Object> allFieldList,
java.util.List<java.lang.String> columnNames)
根据数据库中表的结构和model中表的结构对比找出新增的字段
|
private java.util.List<java.lang.Object> |
getAddIndexList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
找出需要新建的索引
|
private java.util.List<java.lang.Object> |
getAddUniqueList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
找出需要新建的唯一约束
|
private java.util.Map<java.lang.String,CreateTableParam> |
getAllFieldMap(java.util.List<java.lang.Object> allFieldList)
将allFieldList转换为Map结构
|
java.util.List<java.lang.Object> |
getAllFields(java.lang.Class<?> clas)
迭代出所有model的所有fields
|
private java.util.List<java.lang.Object> |
getDropIndexAndUniqueList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
找出需要删除的索引和唯一约束
|
private java.util.List<java.lang.Object> |
getDropKeyFieldList(java.util.List<SysMysqlColumns> tableColumnList,
java.util.List<java.lang.Object> allFieldList)
返回需要删除主键的字段
|
private java.util.List<java.lang.String> |
getFieldNames(java.util.List<java.lang.reflect.Field> fieldList) |
private java.util.List<java.lang.Object> |
getModifyFieldList(java.util.List<SysMysqlColumns> tableColumnList,
java.util.List<java.lang.Object> allFieldList)
根据数据库中表的结构和model中表的结构对比找出修改类型默认值等属性的字段
数据库中的结构
|
private java.util.List<java.lang.Object> |
getRemoveFieldList(java.util.List<java.lang.String> columnNames,
java.util.List<java.lang.Object> allFieldList)
根据数据库中表的结构和model中表的结构对比找出删除的字段
|
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> |
initTableMap()
初始化用于存储各种操作表结构的容器
|
private void |
modifyFieldsByMap(java.util.Map<java.lang.String,TableConfig> modifyTableMap)
根据map结构修改表中的字段类型等
|
private void |
modifyTableCommentByMap(java.util.Map<java.lang.String,TableConfig> modifyTableCommentMap)
根据map结构更新表的注释
|
private java.lang.reflect.Field[] |
recursionParents(java.lang.Class<?> clas,
java.lang.reflect.Field[] fields)
递归扫描父类的fields
|
private void |
removeFieldsByMap(java.util.Map<java.lang.String,TableConfig> removeTableMap)
根据map结构删除表中的字段
|
private java.lang.String |
stringArrFormat(java.lang.String[] arr)
String[] to format xxx_yyy_sss
|
private static final org.slf4j.Logger log
@Autowired private CreateMysqlTablesMapper createMysqlTablesMapper
@Autowired private ConfigurationUtil springContextUtil
private static java.lang.String pack
private static java.lang.String tableAuto
public void createMysqlTable()
createMysqlTable 在接口中 SysMysqlCreateTableManagerprivate void checkTableName(java.util.List<java.lang.String> tableNames,
java.lang.Class<?> clas)
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> initTableMap()
private void buildTableMapConstruct(java.lang.Class<?> clas,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> baseTableMap)
clas - package中的model的ClassbaseTableMap - 用于存储各种操作表结构的容器private java.util.List<java.lang.Object> getAddIndexList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
allIndexAndUniqueNames - 当前数据库的索引很约束名allFieldList - model中的所有字段private java.util.List<java.lang.Object> getAddUniqueList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
allIndexAndUniqueNames - 当前数据库的索引很约束名allFieldList - model中的所有字段private java.util.List<java.lang.Object> getDropIndexAndUniqueList(java.util.Set<java.lang.String> allIndexAndUniqueNames,
java.util.List<java.lang.Object> allFieldList)
allIndexAndUniqueNames - 当前数据库的索引很约束名allFieldList - model中的所有字段private java.util.List<java.lang.Object> getDropKeyFieldList(java.util.List<SysMysqlColumns> tableColumnList, java.util.List<java.lang.Object> allFieldList)
tableColumnList - 表结构allFieldList - model中的所有字段private java.util.List<java.lang.Object> getModifyFieldList(java.util.List<SysMysqlColumns> tableColumnList, java.util.List<java.lang.Object> allFieldList)
tableColumnList - 表结构allFieldList - model中的所有字段private java.util.Map<java.lang.String,CreateTableParam> getAllFieldMap(java.util.List<java.lang.Object> allFieldList)
allFieldList - private java.util.List<java.lang.Object> getRemoveFieldList(java.util.List<java.lang.String> columnNames,
java.util.List<java.lang.Object> allFieldList)
columnNames - 数据库中的结构allFieldList - model中的所有字段private java.util.List<java.lang.Object> getAddFieldList(java.util.List<java.lang.Object> allFieldList,
java.util.List<java.lang.String> columnNames)
allFieldList - model中的所有字段columnNames - 数据库中的结构public java.util.List<java.lang.Object> getAllFields(java.lang.Class<?> clas)
getAllFields 在接口中 SysMysqlCreateTableManagerclas - 准备做为创建表依据的classprivate java.lang.String stringArrFormat(java.lang.String[] arr)
arr - private java.lang.reflect.Field[] recursionParents(java.lang.Class<?> clas,
java.lang.reflect.Field[] fields)
clas - 类fields - 属性private java.util.List<java.lang.String> getFieldNames(java.util.List<java.lang.reflect.Field> fieldList)
private void createOrModifyTableConstruct(java.util.Map<java.lang.String,java.util.Map<java.lang.String,TableConfig>> baseTableMap)
baseTableMap - 操作sql的数据结构private void dropIndexAndUniqueByMap(java.util.Map<java.lang.String,TableConfig> dropIndexAndUniqueMap)
dropIndexAndUniqueMap - 用于删除索引和唯一约束private void addIndexByMap(java.util.Map<java.lang.String,TableConfig> addIndexMap)
addIndexMap - 用于创建索引和唯一约束private void addUniqueByMap(java.util.Map<java.lang.String,TableConfig> addUniqueMap)
addUniqueMap - 用于创建索引和唯一约束private void modifyFieldsByMap(java.util.Map<java.lang.String,TableConfig> modifyTableMap)
modifyTableMap - 用于存需要更新字段类型等的表名+结构private void removeFieldsByMap(java.util.Map<java.lang.String,TableConfig> removeTableMap)
removeTableMap - 用于存需要删除字段的表名+结构private void modifyTableCommentByMap(java.util.Map<java.lang.String,TableConfig> modifyTableCommentMap)
modifyTableCommentMap - 用于存需要更新表名+注释private void addFieldsByMap(java.util.Map<java.lang.String,TableConfig> addTableMap)
addTableMap - 用于存需要增加字段的表名+结构private void dropFieldsKeyByMap(java.util.Map<java.lang.String,TableConfig> dropKeyTableMap)
dropKeyTableMap - 用于存需要删除主键的表名+结构private void createTableByMap(java.util.Map<java.lang.String,TableConfig> newTableMap)
newTableMap - 用于存需要创建的表名+结构Copyright © 2024 pig4cloud. All rights reserved.