sql >> Database >  >> RDS >> Mysql

Converteer alle mysql-tabelgegevens naar JSON in spring boot

U kunt een lijst met kolommen voor een bepaalde tabel selecteren met INFORMATION_SCHEMA :

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

Converteer nu ResultSet van boven naar List<String> van kolomnamen. Daarna kunnen we het gebruiken om de uiteindelijke ResultSet . te converteren naar JSON Object .

Pseudocode:

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

Wanneer ResultSet is enorm, we zouden moeten overwegen om Streaming API te gebruiken van Jackson of Gson bibliotheken om het probleem "onvoldoende geheugen" te voorkomen.

Zie ook:

Bijwerken

Het lijkt erop dat we geen kolomnamen hoeven te selecteren met extra SQL query omdat ResultSet heeft getMetaData methode:

Zie ook:



  1. Hoe DateTime naar een getal in MySQL te converteren?

  2. MySql back-up en herstel

  3. Hoe maak je een docker-image met een gevulde database voor geautomatiseerde tests?

  4. KNIME