All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.dongliu.dbutils.handlers.MapRowProcessor Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
package net.dongliu.dbutils.handlers;

import net.dongliu.dbutils.RowProcessor;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Processor convert row to map with column name as key
 *
 * @author Liu Dong
 */
public class MapRowProcessor implements RowProcessor> {

    private String[] names;

    @Override
    public void init(ResultSet rs) throws SQLException {
        ResultSetMetaData rsmd = rs.getMetaData();
        int count = rsmd.getColumnCount();
        String[] names = new String[count + 1];
        for (int i = 1; i <= count; i++) {
            String columnName = rsmd.getColumnLabel(i);
            if (columnName == null || columnName.isEmpty()) {
                columnName = rsmd.getColumnName(i);
            }
            names[i] = columnName;
        }
        this.names = names;
    }

    @Override
    public Map convert(ResultSet rs) throws SQLException {
        Map result = new LinkedHashMap<>();
        for (int i = 1; i < names.length; i++) {
            result.put(names[i], rs.getObject(i));
        }

        return result;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy