Anda dapat memilih daftar kolom untuk tabel yang diberikan menggunakan INFORMATION_SCHEMA :
SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'
Sekarang, konversikan ResultSet dari kueri di atas ke List<String> dari nama kolom. Setelah itu kita dapat menggunakannya untuk mengonversi ResultSet final ke JSON Object .
Kode semu:
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
Ketika ResultSet sangat besar, kami harus mempertimbangkan untuk menggunakan Streaming API dari Jackson atau Gson perpustakaan untuk menghindari masalah "kehabisan memori".
Lihat juga:
- Cara mendapatkan database struktur di MySQL melalui kueri
- Jackson Streaming API
- Jackson - Model pemrosesan:Streaming API
- Streaming Gson
Perbarui
Sepertinya kita tidak perlu memilih nama kolom menggunakan SQL tambahan kueri karena ResultSet memiliki getMetaData
metode:
Lihat juga: