BeanPropertyRowMapper
BeanPropertyRowMapper
土鳖的弟弟 发表于4年前
BeanPropertyRowMapper
  • 发表于 4年前
  • 阅读 66
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: BeanPropertyRowMapper
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
博文 60
码字总数 7366
×
土鳖的弟弟
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: