Browse Source

基础框架发布: 8.2.39

1. 数据库表结构和数据导出时,提升选择表的效能

前端核心发布: 8.2.132
  1. 解决首页和工作台我完成的任务排序的问题
main
wangshaoping 2 days ago
parent
commit
a4a8ced1b2
  1. 13
      io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java
  2. 29
      io.sc.platform.jdbc/src/main/java/io/sc/platform/jdbc/meta/support/Table.java

13
io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java

@ -149,6 +149,19 @@ public class MetaDataLoaderImpl implements MetaDataLoader {
try{rs.close();} catch (SQLException e) {}
try{connection.close();} catch (SQLException e) {}
}
CollectionUtil.bubbleSort(result,new Comparator<Table>() {
@Override
public int compare(Table o1, Table o2) {
if(o1.isParentOf(o2)) {
return -1;
}else if(o1.isChildOf(o2)) {
return 1;
}else {
return o1.getName().compareTo(o2.getName());
}
}
});
return result;
}

29
io.sc.platform.jdbc/src/main/java/io/sc/platform/jdbc/meta/support/Table.java

@ -13,6 +13,35 @@ public class Table {
private String selfReferencePrimaryKeyColumnName;
private String selfReferenceForeignKeyColumnName;
public boolean isParentOf(Table childTable){
if(childTable==null){ return false; }
List<ForeignKey> foreignKeys =childTable.getForeignKeys();
if(foreignKeys==null || foreignKeys.isEmpty()){
return false;
}
for(ForeignKey foreignKey : foreignKeys){
if(foreignKey.getPrimaryKeyTableName().equalsIgnoreCase(this.getName())){
return true;
}
}
return false;
}
public boolean isChildOf(Table parentTable){
if(parentTable==null){ return false; }
List<ForeignKey> foreignKeys =this.getForeignKeys();
if(foreignKeys==null || foreignKeys.isEmpty()){
return false;
}
for(ForeignKey foreignKey : foreignKeys){
if(foreignKey.getPrimaryKeyTableName().equalsIgnoreCase(parentTable.getName())){
return true;
}
}
return false;
}
public String getName() {
return name;
}

Loading…
Cancel
Save