sql >> Base de Datos >  >> RDS >> Mysql

Convierta todos los datos de la tabla mysql en JSON en Spring Boot

Puede seleccionar una lista de columnas para una tabla dada usando INFORMATION_SCHEMA :

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

Ahora, convierta ResultSet desde la consulta anterior a List<String> de nombres de columna. Después de eso, podemos usarlo para convertir el ResultSet final a JSON Object .

Pseudocódigo:

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

Cuando ResultSet es enorme, deberíamos considerar usar Streaming API de Jackson o Gson bibliotecas para evitar el problema de "falta de memoria".

Véase también:

Actualizar

Parece que no necesitamos seleccionar los nombres de las columnas usando SQL adicional consulta porque ResultSet tiene getMetaData método:

Véase también: