code: public List<IntrospectedTable> introspectTables(DatabaseConfig config)
              throws SQLException {
          if (config.hasProcess()) {
              config.getDatabaseProcess().processStart();
          }
          List<IntrospectedTable> introspectedTables = null;
          try {
              DatabaseConfig localConfig = getLocalDatabaseConfig(config);
              Map<IntrospectedTable, List<IntrospectedColumn>> columns = getColumns(localConfig);
  
              if (columns.isEmpty()) {
                  introspectedTables = new ArrayList<IntrospectedTable>(0);
              } else {
                  introspectedTables = calculateIntrospectedTables(localConfig, columns);
                  Iterator<IntrospectedTable> iter = introspectedTables.iterator();
                  while (iter.hasNext()) {
                      IntrospectedTable introspectedTable = iter.next();
                      //去掉没有字段的表
                      if (!introspectedTable.hasAnyColumns()) {
                          iter.remove();
                      }
                  }
              }
          } finally {
              if (config.hasProcess()) {
                  config.getDatabaseProcess().processComplete(introspectedTables);
              }
          }
          return introspectedTables;
      }
docs: 获取表信息
  
  @param config
  @return
  @throws SQLException