文档章节

BeanPropertyRowMapper

土鳖的弟弟
 土鳖的弟弟
发布于 2013/11/17 21:20
字数 108
阅读 66
收藏 0
import java.lang.reflect.InvocationTargetException; 
 import java.lang.reflect.Method; 
 import java.sql.ResultSet; 
 import java.sql.ResultSetMetaData; 
 import java.sql.SQLException; 
 
 
 public class BeanPropertyRowMapper<T> implements RowMapper<T>{ 
 
 
 private Class<?> clazz; 
 public BeanPropertyRowMapper(Class<?> clazz) { 
 this.clazz = clazz; 
 } 
 
 @SuppressWarnings("unchecked") 
 @Override 
 public T mapRow(ResultSet rs) throws SQLException { 
 
 ResultSetMetaData rsmd = rs.getMetaData(); 
 
 Object obj = null; 
 try { 
 obj = clazz.newInstance(); 
 
 for(int i = 1;i <= rsmd.getColumnCount();i++) { 
 String columnName = rsmd.getColumnLabel(i); 
 Object columnValue = rs.getObject(columnName); 
 setPropertyValue(obj,columnName,columnValue); 
 } 
 
 } catch (Exception e) { 
 e.printStackTrace(); 
 } 
 
 return (T)obj; 
 } 
 
 
     private void setPropertyValue(Object obj,String columnName, Object columnValue) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { 
         String methodName = "set"+columnName.substring(0,1).toUpperCase()+columnName.substring(1); 
         
         Method[] methods = clazz.getMethods(); 
         for(Method method : methods) { 
         if(methodName.equals(method.getName())) { 
         method.invoke(obj, columnValue); 
         break; 
     } 
 } 
 } 
 
 
 }


© 著作权归作者所有

共有 人打赏支持
土鳖的弟弟
粉丝 8
博文 63
码字总数 7366
作品 0
程序员
私信 提问
聊聊spring jdbc的RowMapper

序 本文主要介绍下spring jdbc的RowMapper RowMapper spring-jdbc-4.3.10.RELEASE-sources.jar!/org/springframework/jdbc/core/RowMapper.java spring定义了这个RowMapper,来让应用去自定义......

xixicat
2017/11/20
0
0
Spring JdbcTemplate query查询结果转换对象

在使用JdbcTemplate的时候,可以使用query方法来查询指定的sql语句,来返回我们需要的结果。query提供了RowMapper接口,可以方便的将查询结果转换为对象。 RowMapper常见的有2个实现类BeanP...

xiaomin0322
12/06
0
0
springJDBC中NamedParameterJdbcTemplate和JdbcTempl...

public class CopyOfStudentDaoImpl implements StudentDao { private JdbcTemplate jdbcTemplate; private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void setDataSo......

zplswf
2012/06/16
0
0
java.sql.SQLException: Fail to convert to internal

ava.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLException: Fail to convert to internal representation at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseE......

Oscarfff
2016/06/14
27
0
关于Hibernate的查询从数据库映射到JavaBean

Hibernate除了HQL外,还支持SQL的查询,API为createSQLQuery(sql),如果数据库使用的是Oracle, 由于数据库表中的列都是大写,所以在从resultset到javabean的时候,需要完全匹配。 一般我们会...

tomyang12
2014/08/27
0
1

没有更多内容

加载失败,请刷新页面

加载更多

一、什么是ActiveMQ

首先我们应该先了解J2EE中的一个重要规范:JMS(The Java Message Service)Java消息服务。而JMS的客户端之间可以通过JMS服务进行异步的消息传输。它主要有两种模型:点对点和发布订阅模型。 ...

watermelon11
17分钟前
0
0
课时17 第三课Spark内部原理剖析与源码阅读(五)

为何spark shuffle比mapreduce shuffle慢? 主要是spark shuffle的shuffle read阶段还不够优秀,它是基于hashmap实现的,shuffle read会把shuffel write阶段已经排序数据给重新转成乱序的,转...

刀锋
33分钟前
1
0
Function函数式接口

Function函数式接口传入一个参数,返回一个值。 然后我们使用这个写个demo看看: 输出: 接口内部还有两个default方法和一个static方法,然后我们先看一下static方法 返回一个始终返回其输入...

woshixin
48分钟前
1
0
开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
今天
2
0
java框架学习日志-4

补充一些spring配置文件的方法。 设置别名: <!--通过name直接设置别名--> <bean name="user2" class="cn.sxt.factory.UserDynamicFactory"> </bean> <!--有id的情况下也可以设置......

白话
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部