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

com.gitee.qdbp.jdbc.result.SimpleRowToMapMapper Maven / Gradle / Ivy

package com.gitee.qdbp.jdbc.result;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.Map;
import org.springframework.jdbc.support.JdbcUtils;
import com.gitee.qdbp.jdbc.plugins.DbPluginHelper;
import com.gitee.qdbp.jdbc.plugins.TablesFieldColumnParser;

/**
 * Row转换为Map
* 如果存在同名字段, 以先出现的为准, 忽略后出现的 * * @author zhaohuihua * @version 20201109 */ public class SimpleRowToMapMapper implements RowToMapMapper, DbPluginHelper.Aware { /** 插件容器 **/ protected DbPluginHelper plugins; @Override public void setPlugins(DbPluginHelper plugins) { this.plugins = plugins; } @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount(); Map mapOfColumnValues = new LinkedHashMap<>(columnCount); for (int i = 1; i <= columnCount; i++) { String fieldName = getFieldName(JdbcUtils.lookupColumnName(rsmd, i)); if (mapOfColumnValues.containsKey(fieldName)) { continue; } Object object = getColumnValue(rs, i); mapOfColumnValues.put(fieldName, object); } return mapOfColumnValues; } protected String getFieldName(String columnName) { TablesFieldColumnParser parser = plugins.getTablesFieldColumnParser(); // 表别名与列别名的分隔符 String tableAliasSeparator = parser.getTableAliasSeparator(); int tableAliasIndex = columnName.indexOf(tableAliasSeparator); if (tableAliasIndex >= 0) { columnName = columnName.substring(tableAliasIndex + tableAliasSeparator.length()); } return columnNameToFieldName(columnName); } protected String columnNameToFieldName(String columnName) { return columnName; } protected Object getColumnValue(ResultSet rs, int index) throws SQLException { return JdbcUtils.getResultSetValue(rs, index); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy