Mysql
 sql >> база данни >  >> RDS >> Mysql

Преобразувайте всички данни от таблицата на mysql в JSON при пролетно зареждане

Можете да изберете списък с колони за дадена таблица с помощта на INFORMATION_SCHEMA :

SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'

Сега конвертирайте ResultSet от горната заявка към 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 библиотеки, за да избегнете проблема с липсата на памет.

Вижте също:

Актуализиране

Изглежда, че няма нужда да избираме имена на колони, използвайки допълнителен SQL заявка, защото ResultSet има getMetaData метод:

Вижте също:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOAD DATA INFILE лесно конвертирате ГГГГММДД в ​​ГГГГ-ММ-ДД?

  2. Преобразуване на PHP диапазон от време в MYSQL отделни дати

  3. намерете максималния набор от колони за множество редове в mysql заявка

  4. Mysql конвертира int в MAC

  5. Mysql - Вземете ред с най-нисък брой релации