Bạn có thể chọn danh sách các cột cho bảng đã cho bằng cách sử dụng INFORMATION_SCHEMA :
SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'
Bây giờ, hãy chuyển đổi ResultSet từ truy vấn trên đến List<String> tên cột. Sau đó, chúng tôi có thể sử dụng nó để chuyển đổi ResultSet cuối cùng tới JSON Object .
Mã giả:
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
Khi ResultSet là rất lớn, chúng tôi nên xem xét sử dụng Streaming API từ Jackson hoặc Gson thư viện để tránh sự cố "hết bộ nhớ".
Xem thêm:
- Cách tải cơ sở dữ liệu cấu trúc trong MySQL thông qua truy vấn
- Jackson Streaming API
- Jackson - Mô hình xử lý:API truyền trực tuyến
- Gson Streaming
Cập nhật
Có vẻ như sự kiện chúng tôi không cần chọn tên cột bằng cách sử dụng thêm SQL truy vấn vì ResultSet có getMetaData
phương pháp:
Xem thêm: