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: