sql >> Databasteknik >  >> RDS >> Mysql

Konvertera alla mysql-tabelldata till JSON i vårstart

Du kan välja en lista med kolumner för given tabell med INFORMATION_SCHEMA :

SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'

Konvertera nu ResultSet från ovanstående fråga till List<String> kolumnnamn. Efter det kan vi använda den för att konvertera slutliga ResultSet till JSON Object .

Pseudokod:

Connection connection = createConnection();
List<String> columns = loadColumns(connection, tableName);
ResultSet dataSet = loadData(connection, tableName);
while (dataSet.next()) {
    JSONObject record = new JSONObject();
    for (String column : columns) {
        record.put(column, dataSet.getObject(column));
    }
    array.add(record);
}
// save array to file

När ResultSet är enormt bör vi överväga att använda Streaming API från Jackson eller Gson bibliotek för att undvika problem med "tom minne".

Se även:

Uppdatera

Det verkar som att vi inte behöver välja kolumnnamn med extra SQL fråga eftersom ResultSet har getMetaData metod:

Se även:



  1. Använder exklusiv eller i mysql

  2. Introduktion till Slowly Changing Dimensions (SCD)

  3. återställ root-lösenordet med fel mysql-konfiguration

  4. Skriva till specifika scheman med RPostgreSQL