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é: