Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Converta todos os dados da tabela mysql em JSON na inicialização da mola


Você pode selecionar a lista de colunas para uma determinada tabela usando INFORMATION_SCHEMA :
SELECT COLUMN_NAME FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TABLE_NAME LIKE 'table_name'

Agora, converta ResultSet da consulta acima para List<String> dos nomes das colunas. Depois disso, podemos usá-lo para converter o ResultSet final para JSON Object .

Pseudo-có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

Quando ResultSet é enorme, devemos considerar o uso da Streaming API de Jackson ou Gson bibliotecas para evitar o problema de "falta de memória".

Veja também:

Atualizar


Parece que não precisamos selecionar nomes de colunas usando SQL extra consulta porque ResultSet tem getMetaData método:

Veja também: