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:
- So erhalten Sie eine Datenbank Struktur in MySQL per Abfrage
- Jackson-Streaming-API
- Jackson – Verarbeitungsmodell:Streaming-API
- Gson-Streaming
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: