Ejemplo n.º 1
0
  public String loadSchema() {
    save();

    loadSchemaResult = false;
    Connection conn = null;
    String url =
        "jdbc:mysql://"
            + dbconfig.getHost()
            + ":"
            + dbconfig.getPort()
            + "/"
            + dbconfig.getDatabase_name();
    String sql_tables =
        String.format(
            "select TABLE_SCHEMA, TABLE_NAME, TABLE_COMMENT from information_schema.tables where TABLE_SCHEMA=\"%s\";",
            dbconfig.getDatabase_name());
    String sql_columns =
        String.format(
            "select TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, COLUMN_KEY, COLUMN_COMMENT from information_schema.columns where TABLE_SCHEMA=\"%s\";",
            dbconfig.getDatabase_name());
    String sql_keys =
        String.format(
            "select CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME from information_schema.KEY_COLUMN_USAGE where TABLE_SCHEMA=\"%s\";",
            dbconfig.getDatabase_name());

    try {
      DbUtils.loadDriver(driver);
      conn = DriverManager.getConnection(url, dbconfig.getUsername(), dbconfig.getPassword());
      QueryRunner qr = new QueryRunner();
      List<Map<String, Object>> tables = qr.query(conn, sql_tables, new MapListHandler());
      List<Map<String, Object>> columns = qr.query(conn, sql_columns, new MapListHandler());
      List<Map<String, Object>> keys = qr.query(conn, sql_keys, new MapListHandler());
      dbconfig.setTables_json(JSONUtil.serialize(tables, false));
      dbconfig.setColumns_json(JSONUtil.serialize(columns, false));
      dbconfig.setKeys_json(JSONUtil.serialize(keys, false));
      DbUtils.closeQuietly(conn);
    } catch (Exception ex) {
      return ERROR;
    }
    loadSchemaResult = true;
    SaveLog.saveLog(
        new Users((long) 1),
        "11",
        "数据库映射",
        new Date(),
        "数据库-企业数据库-模板映射—导入数据库配置方案",
        Constant.DATABASE_OPERATION,
        this.getClass().getName());
    return SUCCESS;
  }