आप INFORMATION_SCHEMA
. का उपयोग करके दी गई तालिका के लिए कॉलम की सूची का चयन कर सकते हैं :
SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'
अब, ResultSet
convert कन्वर्ट करें उपरोक्त क्वेरी से List<String>
. तक स्तंभों के नाम। उसके बाद हम इसका उपयोग अंतिम ResultSet
. में कनवर्ट करने के लिए कर सकते हैं करने के लिए JSON Object
।
स्यूडोकोड:
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
जब ResultSet
बहुत बड़ा है हमें Streaming API
का उपयोग करने पर विचार करना चाहिए Jackson
. से या Gson
"स्मृति से बाहर" समस्या से बचने के लिए पुस्तकालय।
यह भी देखें:
- डेटाबेस कैसे प्राप्त करें क्वेरी के माध्यम से MySQL में संरचना
- जैक्सन स्ट्रीमिंग एपीआई
- जैक्सन - प्रोसेसिंग मॉडल:स्ट्रीमिंग एपीआई
- Gson Streaming
अपडेट करें
ऐसा लगता है कि हमें ईवेंट के लिए अतिरिक्त SQL
. का उपयोग करके कॉलम नामों का चयन करने की आवश्यकता नहीं है क्वेरी क्योंकि ResultSet
इसमें getMetaData
है। विधि:
यह भी देखें: