Seznam sloupců pro danou tabulku můžete vybrat pomocí INFORMATION_SCHEMA :
SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'
Nyní převeďte ResultSet z výše uvedeného dotazu na List<String> názvů sloupců. Poté jej můžeme použít ke konverzi finální ResultSet na JSON Object .
Pseudokód:
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
Když ResultSet je obrovský, měli bychom zvážit použití Streaming API od Jackson nebo Gson knihovny, abyste se vyhnuli problému s nedostatkem paměti.
Viz také:
- Jak získat databázi struktura v MySQL pomocí dotazu
- Jackson Streaming API
- Jackson – Model zpracování:Streaming API
- Gson Streaming
Aktualizovat
Vypadá to, že nemusíme vybírat názvy sloupců pomocí extra SQL dotaz, protože ResultSet má getMetaData
metoda:
Viz také: