java rowmapper 通用实现_将每行映射为MAP对象的RowMapper实现
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.Map;
import com.huawei.widget.commons.dao.RowMapper;
import com.huawei.widget.commons.dao.util.JdbcUtils;
/**
* 将每行映射为MAP对象的RowMapper实现。
*
* @author g00106664
* @version C02 2009-4-27
* @since OpenEye WIDGET_SRV V100R001C02
*/
@SuppressWarnings("unchecked")
public class ColumnMapRowMapper implements RowMapper{
/**
* 此方法用于将每行数据映射为实体类。
*
* @param rs
* ResultSet
* @param rowNum
* the row num
* @return the t
* @throws java.sql.SQLException
* the SQL exception
* @see com.huawei.widget.db.RowMapper#mapRow(ResultSet, int)
*/
public Map mapRow(ResultSet rs, int rowNum) throws SQLException
{
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map mapOfColValues = createColumnMap(columnCount);
for (int i = 1; i <= columnCount; i++)
{
String key = getColumnKey(rsmd.getColumnName(i));
Object obj = getColumnValue(rs, i);
mapOfColValues.put(key.toLowerCase(), obj);
}
return mapOfColValues;
}
/**
* Create a Map instance to be used as column map.
*
* By default, a linked case-insensitive Map will be created if possible,
* else a plain HashMap (see Spring's CollectionFactory).
*
* @param columnCount
* the column count, to be used as initial capacity for the Map
* @return the new Map instance
* @see org.springframework.core.CollectionFactory#createLinkedCaseInsensitiveMapIfPossible
*/
protected Map createColumnMap(int columnCount)
{
return new LinkedHashMap(columnCount);
}
/**
* Determine the key to use for the given column in the column Map.
*
* @param columnName
* the column name as returned by the ResultSet
* @return the column key to use
* @see java.sql.ResultSetMetaData#getColumnName
*/
protected String getColumnKey(String columnName)
{
return columnName;
}
/**
* Retrieve a JDBC object value for the specified column.
*
* The default implementation uses the getObject method.
* Additionally, this implementation includes a "hack" to get around Oracle
* returning a non standard object for their TIMESTAMP datatype.
*
* @param rs
* is the ResultSet holding the data
* @param index
* is the column index
* @return the Object returned
* @throws java.sql.SQLException
* 如有异常,抛出。
* @see org.springframework.jdbc.support.JdbcUtils#getResultSetValue
*/
protected Object getColumnValue(ResultSet rs, int index)
throws SQLException
{
return JdbcUtils.getResultSetValue(rs, index);
}
}
java rowmapper 通用实现_将每行映射为MAP对象的RowMapper实现相关推荐
- java rowmapper 通用实现_必经之路!各大网站力推Java代码优化:77案例+28技巧
优秀的代码品质是程序员走向架构师神圣殿堂的必经之路!!! Java是目前的主流开发技术,如何更好地发挥其技术优势实现最佳资源配置和获得更高商业价值,一直是Java技术发展的趋势.然而Java体系庞大. ...
- java删除通用方法_一个比较通用的java删除文件和文件夹的方法
在项目中如果有文件上传的时候,通常情况下,我们需要对上传的文件进行维护,一般的维护就是删除文件或删除文件夹和文件夹下的文件,下面的方法则实现了这个需求: /** * 删除文件夹和文件夹下的文件 * @ ...
- java读mysql增量_如何复制行并在MySQL中使用自动增量字段插入同一个表?
如果您需要复杂的解决方案以便经常这样做,您可以使用以下过程: DELIMITER $$ CREATE PROCEDURE `duplicateRows`(_schemaName text, _tabl ...
- java 缓存 单例_单例模式应用:高速缓存和查找对象(转)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 单例模式获得工厂唯一实例,用map保存对象引用,实现快速查找 1.例子 package com.d1zhan.cache; import java.uti ...
- java ee 值范围_【转载】JAVAEE之内置对象和属性范围
内置对象和属性范围 四种属性范围 九个内置对象 1.内置对象 如果说想要使用一个对象,必须new 出来,但是在我们的jsp操作中,发现我们使用过的out,request对象没有进行实例化,类似 ...
- java list转成map对象_将List集合中的map对象转为List对象形式--封装类
importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;impo ...
- java keyset entryset 顺序_「entryset」如何遍历Map,map的keySet()和EntrySet()区别 - seo实验室...
entryset 如何遍历Map,map的keySet()和EntrySet()区别 遍历map public static void main(String[] args) { // TODO Au ...
- java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...
java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...
- java rowmapper 通用实现_06.Teambiz中三种特殊RowMapper的使用
Teambiz中三种特殊RowMapper的使用 作者:何杨 撰写日期:2012年2月25日 版本:1.00 更新日期: 第一部分:功能说明 针对特殊目的的查询,TeamBiz提供了一系列的RowMa ...
最新文章
- 【UER #8】打雪仗
- C语言实现克鲁斯卡尔Kruskal算法求最小生成树(附完整源码)
- GIT项目管理工具(part9)--保存工作区
- linux分区表与uboot,Linux和Uboot下eMMC boot分区读写
- 学计算机之路写一篇作文,我的学习之路作文(2篇)
- Nginx根据路径设置静态资源
- java c:if语句_java开发编译器:C语言逻辑控制语句if else if 的语法解析
- fastadmin 后台管理 时间戳字段使用
- oracle11g 安装在rhel5.0笔记
- 迅雷版本哪个好android,哪个是最好的螃蟹?适用于Android手机的迅雷体验的新版本...
- vs2003远程调试方法
- VS code安装GitLens提示GitLenswas unable to find Git. Please make sure Git is installed...报错
- 基于matlab的单相pwm逆变电路的仿真研究,基于MATLAB的单相PWM逆变电路的仿真研究.pdf...
- java18天map和线程
- 初级程序员晋升中级程序员,只差这7个技能
- mgo简介以及使用说明
- SAP 散装物料作用及设置
- java 堆外内存泄露排查
- notepad++使用NppExec插件找不到或无法加载主类(java)
- 如何快速找到自己想要的资源?