sql >> Database teknologi >  >> RDS >> Mysql

Konverter alle mysql-tabeldata til JSON i spring boot

Du kan vælge en liste over kolonner for en given tabel ved hjælp af INFORMATION_SCHEMA :

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

Konverter nu ResultSet fra ovenstående forespørgsel til List<String> af kolonnenavne. Derefter kan vi bruge det til at konvertere det endelige ResultSet til JSON Object .

Pseudokode:

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

Når ResultSet er enorm, bør vi overveje at bruge Streaming API fra Jackson eller Gson biblioteker for at undgå problemer med "tom hukommelse".

Se også:

Opdater

Det ser ud til, at vi ikke behøver at vælge kolonnenavne ved hjælp af ekstra SQL forespørgsel fordi ResultSet har getMetaData metode:

Se også:



  1. MYSQL - Hent tidsstempler mellem datoer

  2. Kan jeg bruge forespørgselssprog i dvale for enheder, der ikke er knyttet til en tabel?

  3. Brug af OR i LIKE-forespørgsel i MySQL til at sammenligne flere felter

  4. Det svarer til SQLServer-funktionen SCOPE_IDENTITY() i mySQL?