Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren Sie alle MySQL-Tabellendaten im Spring Boot in JSON

Sie können eine Liste von Spalten für eine bestimmte Tabelle mit INFORMATION_SCHEMA auswählen :

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

Konvertieren Sie nun ResultSet von obiger Abfrage zu List<String> von Spaltennamen. Danach können wir es verwenden, um das endgültige ResultSet zu konvertieren zu JSON Object .

Pseudocode:

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

Wenn ResultSet riesig ist, sollten wir die Verwendung von Streaming API in Erwägung ziehen von Jackson oder Gson Bibliotheken, um das Problem „Speichermangel“ zu vermeiden.

Siehe auch:

Aktualisieren

Es sieht so aus, als müssten wir Spaltennamen nicht mit zusätzlichem SQL auswählen Abfrage, weil ResultSet hat getMetaData Methode:

Siehe auch: