Mysql
 sql >> Database >  >> RDS >> Mysql

Converti tutti i dati della tabella MySQL in JSON nell'avvio primaverile

Puoi selezionare l'elenco di colonne per una determinata tabella utilizzando INFORMATION_SCHEMA :

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

Ora converti ResultSet da sopra query a List<String> dei nomi delle colonne. Dopodiché possiamo usarlo per convertire il ResultSet finale a JSON Object .

Pseudocodice:

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

Quando ResultSet è enorme, dovremmo considerare di utilizzare Streaming API da Jackson o Gson librerie per evitare problemi di "memoria insufficiente".

Vedi anche:

Aggiorna

Sembra che non sia necessario selezionare i nomi delle colonne utilizzando SQL extra query perché ResultSet ha getMetaData metodo:

Vedi anche: