Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konwertuj wszystkie dane tabeli mysql na JSON podczas wiosennego rozruchu

Możesz wybrać listę kolumn dla danej tabeli za pomocą INFORMATION_SCHEMA :

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

Teraz przekonwertuj ResultSet z powyższego zapytania do List<String> nazw kolumn. Następnie możemy go użyć do przekonwertowania końcowego ResultSet do JSON Object .

Pseudokod:

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

Kiedy ResultSet jest ogromny, powinniśmy rozważyć użycie Streaming API od Jackson lub Gson biblioteki, aby uniknąć problemu "braku pamięci".

Zobacz też:

Aktualizacja

Wygląda na to, że nie musimy wybierać nazw kolumn za pomocą dodatkowego SQL zapytanie, ponieważ ResultSet ma getMetaData metoda:

Zobacz też:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy to prawda, że ​​liczba kolumn nie wpływa na wydajność bazy danych, a liczba wierszy tak?

  2. MySQL — Oblicz różnicę czasu netto między dwiema datami i godzinami, wykluczając przerwy?

  3. Jak zoptymalizować zapytanie, jeśli tabela zawiera 10000 wpisów przy użyciu MySQL?

  4. wybierz podobne wartości z bazy mysql

  5. Najlepszy sposób na zaimplementowanie architektury Klient<->Serwer<-> Bazy danych w aplikacji na Androida?