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: