@Override public List<String> getDropSqls() { TableProcessor tableProcessor = TableProcessorImpl.getTableProcessor(); List<Table> list = tableProcessor.getTables(); List<Table> sortedTableList = tableProcessor.getSortedTables(list); List<String> dropTableSqls = new ArrayList<String>(); for (Table table : sortedTableList) { String sql = getSingleDropSql(table); dropTableSqls.add(sql); } return dropTableSqls; }
public static Table getTableById(String id, ClassLoader loader) { return getTableProcessor(loader).getTableById(id); }
private TableProcessor createTableProcessor( ProcessorManager processorManager) { TableProcessor tableProcessor = TableProcessorImpl.getTableProcessor(); tableProcessor.setProcessorManager(processorManager); return tableProcessor; }
public void process() { XStream stream = XStreamFactory .getXStream(DataBaseUtil.DATABASE_XSTREAM); for (FileObject fileObject : deleteList) { LOGGER.logMessage(LogLevel.INFO, "正在移除table文件[{0}]", fileObject.getAbsolutePath()); Tables tables = (Tables) caches.get(fileObject.getAbsolutePath()); if (tables != null) { tableProcessor.removeTables(tables); caches.remove(fileObject.getAbsolutePath()); } LOGGER.logMessage(LogLevel.INFO, "移除table文件[{0}]结束", fileObject.getAbsolutePath()); } for (FileObject fileObject : changeList) { LOGGER.logMessage(LogLevel.INFO, "正在加载table文件[{0}]", fileObject.getAbsolutePath()); Tables oldTables = (Tables) caches.get(fileObject.getAbsolutePath()); if (oldTables != null) { tableProcessor.removeTables(oldTables); } Tables tables = convertFromXml(stream, fileObject); tableProcessor.addTables(tables); caches.put(fileObject.getAbsolutePath(), tables); tableProcessor.registerModifiedTime(tables, fileObject.getLastModifiedTime()); LOGGER.logMessage(LogLevel.INFO, "加载table文件[{0}]结束", fileObject.getAbsolutePath()); } }
public static List<Table> getTables(ClassLoader loader) { return getTableProcessor(loader).getTables(); }
public void addTableWithModel(EntityModel model) { if (tableProcessor == null) { tableProcessor = SpringUtil .getBean(TableProcessor.BEAN_NAME); } if (entityModelToTable == null) { entityModelToTable = SpringUtil .getBean(EntityModelToTable.MODEL_TO_TABLE_BEAN_NAME); } Table table = entityModelToTable.model2Table(model); if (table != null) { tableProcessor.addTable(table); } } }
if (!fullSql && pks.size() > 0) { TableProcessor tableProcessor = DataBaseUtil.getTableProcessor(getClass().getClassLoader()); tableExists = tableProcessor.checkTableExist(table, getDbType(), connection);
protected void realLoadTable() throws TinyDbException { TableProcessor processor = BeanContainerFactory.getBeanContainer( this.getClass().getClassLoader()).getBean( TableProcessor.BEAN_NAME); List<Table> tables = processor.getTables(); if (!CollectionUtil.isEmpty(tables)) { for (Table table : tables) { logger.logMessage(LogLevel.DEBUG, "开始转化表对象:{}", table.getName()); TableConfiguration configuration = new TableConfiguration(); String tableName = table.getNameWithOutSchema(); String schema = getSchema(table.getSchema()); if (existsTable(tableName, schema)) { logger.logMessage(LogLevel.WARN, "表格:{0}已存在,无需重新加载", tableName); continue; } configuration.setName(tableName); configuration.setSchema(schema); List<TableField> fields = table.getFieldList(); if (!CollectionUtil.isEmpty(fields)) { for (TableField tableField : fields) { tableFieldConvert(configuration, tableField); } addTableConfiguration(configuration); } logger.logMessage(LogLevel.DEBUG, "转化表对象:{}结束", table.getName()); } } }
public void addTableWithModel(EntityModel model) { if (modelTableInstallProcessor == null) { modelTableInstallProcessor = SpringUtil .getBean(InstallProcessor.TABLE_INSTALL_PROCESSOR); } if (entityModelToTable == null) { entityModelToTable = SpringUtil .getBean(EntityModelToTable.MODEL_TO_TABLE_BEAN_NAME); } Table table = entityModelToTable.model2Table(model); if (table != null) { modelTableInstallProcessor.getTableProcessor().addTable(table); } } }
/** * 获取外键 * * @param table * @param packageName * @param foreignReferences 需要更新的外键对象 * @return */ public List<String> getForeignKeySqls(Table table, String packageName, List<ForeignReference> foreignReferences) { List<String> foreignSqls = new ArrayList<String>(); if (!CollectionUtil.isEmpty(foreignReferences)) { for (ForeignReference foreignReference : foreignReferences) { Table foreignTable = tableProcessor .getTableById(foreignReference.getMainTable()); String sql = getOneFkSql(table, foreignTable, foreignReference); foreignSqls.add(sql); } } return foreignSqls; }
private int indexOfTableReference(List<ForeignReference> foreignRefs, Table table, Map<String, String> dbForeignMap) { for (int i = 0; i < foreignRefs.size(); i++) { ForeignReference fr = foreignRefs.get(i); Table foreignTable = tableProcessor .getTableById(fr.getMainTable()); //被关联的标准字段名 String stdRefFieldName = getFieldStdFieldName(fr.getReferenceField(), foreignTable); //外键的标准字段名 String stdForeignField = getFieldStdFieldName(fr.getForeignField(), table); String constraintName = dbForeignMap.get("CONSTRAINT_NAME"); String columnName = dbForeignMap.get("COLUMN_NAME"); String referenceTableName = dbForeignMap.get("REFERENCED_TABLE_NAME"); String referenceColumnName = dbForeignMap.get("REFERENCED_COLUMN_NAME"); if (stdRefFieldName.equalsIgnoreCase(referenceColumnName) && fr.getName().equalsIgnoreCase(constraintName) && foreignTable.getNameWithOutSchema().equalsIgnoreCase(referenceTableName) && stdForeignField.equalsIgnoreCase(columnName)) { return i; } } return -1; }