DBMetadata-core/src/main/java/com/github/abel533/utils/DBMetadataUtils.java
public DatabaseConfig getDefaultConfig() throws SQLException {
        DatabaseConfig config = null;
        if (catalogs.size() == 1) {
            if (schemas.size() == 1) {
                config = new DatabaseConfig(catalogs.get(0), schemas.get(0));
            } else if (schemas.size() == 0) {
                config = new DatabaseConfig(catalogs.get(0), null);
            }
        } else if (catalogs.size() == 0) {
            if (schemas.size() == 1) {
                config = new DatabaseConfig(null, schemas.get(0));
            } else if (schemas.size() == 0) {
                config = new DatabaseConfig(null, null);
            }
        }
        if (config == null) {
            switch (getDialect()) {
                case DB2:
                case ORACLE:
                    config = new DatabaseConfig(null, dataSource.getUser());
                    break;
                case MYSQL:
                    if (schemas.size() > 0) {
                        break;
                    }
                    String url = dataSource.getUrl();
                    if (url.indexOf('/') > 0) {
                        String dbName = url.substring(url.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                config = new DatabaseConfig(catalog, null);
                                break;
                            }
                        }
                    }
                    break;
                case SQLSERVER:
                    String sqlserverUrl = dataSource.getUrl();
                    String sqlserverCatalog = null;
                    if (sqlserverUrl.indexOf('/') > 0) {
                        String dbName = sqlserverUrl.substring(sqlserverUrl.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                sqlserverCatalog = catalog;
                                break;
                            }
                        }
                        if (sqlserverCatalog != null) {
                            for (String schema : schemas) {
                                if ("dbo".equalsIgnoreCase(schema)) {
                                    config = new DatabaseConfig(sqlserverCatalog, "dbo");
                                    break;
                                }
                            }
                        }
                    }
                    break;
                case POSTGRESQL:
                    String postgreUrl = dataSource.getUrl();
                    String postgreCatalog = null;
                    if (postgreUrl.indexOf('/') > 0) {
                        String dbName = postgreUrl.substring(postgreUrl.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                postgreCatalog = catalog;
                                break;
                            }
                        }
                        if (postgreCatalog != null) {
                            for (String schema : schemas) {
                                if ("public".equalsIgnoreCase(schema)) {
                                    config = new DatabaseConfig(postgreCatalog, "public");
                                    break;
                                }
                            }
                        }
                    }
                    break;
                default:
                    break;
            }

        }
        return config;
    }
public DatabaseConfig getDefaultConfig() throws SQLException {
        DatabaseConfig config = null;
        if (catalogs.size() == 1) {
            if (schemas.size() == 1) {
                config = new DatabaseConfig(catalogs.get(0), schemas.get(0));
            } else if (schemas.size() == 0) {
                config = new DatabaseConfig(catalogs.get(0), null);
            }
        } else if (catalogs.size() == 0) {
            if (schemas.size() == 1) {
                config = new DatabaseConfig(null, schemas.get(0));
            } else if (schemas.size() == 0) {
                config = new DatabaseConfig(null, null);
            }
        }
        if (config == null) {
            switch (getDialect()) {
                case DB2:
                case ORACLE:
                    config = new DatabaseConfig(null, dataSource.getUser());
                    break;
                case MYSQL:
                    if (schemas.size() > 0) {
                        break;
                    }
                    String url = dataSource.getUrl();
                    if (url.indexOf('/') > 0) {
                        String dbName = url.substring(url.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                config = new DatabaseConfig(catalog, null);
                                break;
                            }
                        }
                    }
                    break;
                case SQLSERVER:
                    String sqlserverUrl = dataSource.getUrl();
                    String sqlserverCatalog = null;
                    if (sqlserverUrl.indexOf('/') > 0) {
                        String dbName = sqlserverUrl.substring(sqlserverUrl.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                sqlserverCatalog = catalog;
                                break;
                            }
                        }
                        if (sqlserverCatalog != null) {
                            for (String schema : schemas) {
                                if ("dbo".equalsIgnoreCase(schema)) {
                                    config = new DatabaseConfig(sqlserverCatalog, "dbo");
                                    break;
                                }
                            }
                        }
                    }
                    break;
                case POSTGRESQL:
                    String postgreUrl = dataSource.getUrl();
                    String postgreCatalog = null;
                    if (postgreUrl.indexOf('/') > 0) {
                        String dbName = postgreUrl.substring(postgreUrl.lastIndexOf('/') + 1);
                        for (String catalog : catalogs) {
                            if (dbName.equalsIgnoreCase(catalog)) {
                                postgreCatalog = catalog;
                                break;
                            }
                        }
                        if (postgreCatalog != null) {
                            for (String schema : schemas) {
                                if ("public".equalsIgnoreCase(schema)) {
                                    config = new DatabaseConfig(postgreCatalog, "public");
                                    break;
                                }
                            }
                        }
                    }
                    break;
                default:
                    break;
            }

        }
        return config;
    }
public DatabaseConfig getDefaultConfig ( ) throws SQLException { DatabaseConfig config = null ; if ( catalogs . size ( ) == 1 ) { if ( schemas . size ( ) == 1 ) { config = new DatabaseConfig ( catalogs . get ( 0 ) , schemas . get ( 0 ) ) ; } else if ( schemas . size ( ) == 0 ) { config = new DatabaseConfig ( catalogs . get ( 0 ) , null ) ; } } else if ( catalogs . size ( ) == 0 ) { if ( schemas . size ( ) == 1 ) { config = new DatabaseConfig ( null , schemas . get ( 0 ) ) ; } else if ( schemas . size ( ) == 0 ) { config = new DatabaseConfig ( null , null ) ; } } if ( config == null ) { switch ( getDialect ( ) ) { case DB2 : case ORACLE : config = new DatabaseConfig ( null , dataSource . getUser ( ) ) ; break ; case MYSQL : if ( schemas . size ( ) > 0 ) { break ; } String url = dataSource . getUrl ( ) ; if ( url . indexOf ( ' ' ) > 0 ) { String dbName = url . substring ( url . lastIndexOf ( ' ' ) + 1 ) ; for ( String catalog : catalogs ) { if ( dbName . equalsIgnoreCase ( catalog ) ) { config = new DatabaseConfig ( catalog , null ) ; break ; } } } break ; case SQLSERVER : String sqlserverUrl = dataSource . getUrl ( ) ; String sqlserverCatalog = null ; if ( sqlserverUrl . indexOf ( ' ' ) > 0 ) { String dbName = sqlserverUrl . substring ( sqlserverUrl . lastIndexOf ( ' ' ) + 1 ) ; for ( String catalog : catalogs ) { if ( dbName . equalsIgnoreCase ( catalog ) ) { sqlserverCatalog = catalog ; break ; } } if ( sqlserverCatalog != null ) { for ( String schema : schemas ) { if ( "dbo" . equalsIgnoreCase ( schema ) ) { config = new DatabaseConfig ( sqlserverCatalog , "dbo" ) ; break ; } } } } break ; case POSTGRESQL : String postgreUrl = dataSource . getUrl ( ) ; String postgreCatalog = null ; if ( postgreUrl . indexOf ( ' ' ) > 0 ) { String dbName = postgreUrl . substring ( postgreUrl . lastIndexOf ( ' ' ) + 1 ) ; for ( String catalog : catalogs ) { if ( dbName . equalsIgnoreCase ( catalog ) ) { postgreCatalog = catalog ; break ; } } if ( postgreCatalog != null ) { for ( String schema : schemas ) { if ( "public" . equalsIgnoreCase ( schema ) ) { config = new DatabaseConfig ( postgreCatalog , "public" ) ; break ; } } } } break ; default : break ; } } return config ; }
获取默认的Config

@return
@throws SQLException
获取默认的Config