mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 10:43:06 +08:00
support sqlserver metadata update
This commit is contained in:
@ -125,7 +125,7 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
|
||||
|
||||
@Override
|
||||
public List<TableColumn> columns(Connection connection, String databaseName, String schemaName, String tableName) {
|
||||
String sql = String.format(SELECT_TABLE_COLUMNS, databaseName, tableName);
|
||||
String sql = String.format(SELECT_TABLE_COLUMNS, databaseName, tableName);
|
||||
List<TableColumn> tableColumns = new ArrayList<>();
|
||||
return SQLExecutor.getInstance().execute(connection, sql, resultSet -> {
|
||||
while (resultSet.next()) {
|
||||
@ -146,20 +146,20 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
|
||||
column.setDecimalDigits(resultSet.getInt("NUMERIC_SCALE"));
|
||||
column.setCharSetName(resultSet.getString("CHARACTER_SET_NAME"));
|
||||
column.setCollationName(resultSet.getString("COLLATION_NAME"));
|
||||
setColumnSize(column,resultSet.getString("COLUMN_TYPE"));
|
||||
setColumnSize(column, resultSet.getString("COLUMN_TYPE"));
|
||||
tableColumns.add(column);
|
||||
}
|
||||
return tableColumns;
|
||||
});
|
||||
}
|
||||
|
||||
private void setColumnSize(TableColumn column,String columnType){
|
||||
private void setColumnSize(TableColumn column, String columnType) {
|
||||
try {
|
||||
if (columnType.contains("(")) {
|
||||
String size = columnType.substring(columnType.indexOf("(") + 1, columnType.indexOf(")"));
|
||||
if("SET".equalsIgnoreCase(column.getColumnType())|| "ENUM".equalsIgnoreCase(column.getColumnType())){
|
||||
if ("SET".equalsIgnoreCase(column.getColumnType()) || "ENUM".equalsIgnoreCase(column.getColumnType())) {
|
||||
column.setValue(size);
|
||||
}else {
|
||||
} else {
|
||||
if (size.contains(",")) {
|
||||
String[] sizes = size.split(",");
|
||||
if (StringUtils.isNotBlank(sizes[0])) {
|
||||
@ -173,12 +173,11 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static String VIEW_SQL
|
||||
= "SELECT TABLE_SCHEMA AS DatabaseName, TABLE_NAME AS ViewName, VIEW_DEFINITION AS definition, CHECK_OPTION, "
|
||||
+ "IS_UPDATABLE FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s';";
|
||||
@ -271,4 +270,9 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
|
||||
.collations(MysqlCollationEnum.getCollations())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMetaDataName(String... names) {
|
||||
return Arrays.stream(names).map(name -> "`" + name + "`").collect(Collectors.joining("."));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user