博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过JDBC来理解反射机制
阅读量:6592 次
发布时间:2019-06-24

本文共 2988 字,大约阅读时间需要 9 分钟。

hot3.png

//将ResultSet中的数据转换为相应的对象	@SuppressWarnings("unchecked")	private 
T buildAlarm(T pojo, ResultSet rs) { ResultSetMetaData rsmd; try { rsmd = rs.getMetaData(); int columnsCount = rsmd.getColumnCount(); for (int i = 1; i <= columnsCount; i++) { String fieldName = rsmd.getColumnLabel(i).toLowerCase(); Object value = rs.getObject(fieldName); if(value instanceof java.sql.Date){ value = new java.util.Date(((java.sql.Date) value).getTime()); } if(value instanceof java.sql.Timestamp){ value = new java.util.Date(((java.sql.Timestamp) value).getTime()); } BeanUtils.setProperty(pojo, fieldName, value); } } catch (Exception e1) { } return pojo; } private
T buildAlarm(T pojo, ResultSet rs) { ResultSetMetaData rsmd; try { rsmd = rs.getMetaData(); int columnsCount = rsmd.getColumnCount(); for (int i = 1; i <= columnsCount; i++) { String fieldName = rsmd.getColumnLabel(i).toLowerCase(); Object value = rs.getObject(fieldName); if(value instanceof java.sql.Date){ value = new java.util.Date(((java.sql.Date) value).getTime()); } if(value instanceof java.sql.Timestamp){ value = new java.util.Date(((java.sql.Timestamp) value).getTime()); } BeanUtils.setProperty(pojo, fieldName, value); } } catch (Exception e1) { } return pojo; } //将ResultSet中的数据转换为相应的对象 @SuppressWarnings("unchecked") private
T buildAlarm_rs(T pojo, ResultSet rs) { Class classType = pojo.getClass(); ResultSetMetaData rsmd; try { rsmd = rs.getMetaData(); int columnsCount = rsmd.getColumnCount(); for (int i = 1; i <= columnsCount; i++) { String fieldName = rsmd.getColumnLabel(i).toLowerCase(); String stringLetter = fieldName.substring(0, 1).toUpperCase(); String setName = "set" + stringLetter + fieldName.substring(1); String getName = "get" + stringLetter + fieldName.substring(1); Method getMethod = classType.getMethod(getName, new Class[] {}); Method setMethod = classType.getMethod(setName, new Class[] { getMethod.getReturnType() }); Class fieldType = setMethod.getParameterTypes()[0]; Object value = null; if (fieldType == Integer.class || "int".equals(fieldType.getName())){ if(rs.getObject(fieldName)!=null) value = rs.getInt(fieldName); } else if (fieldType == Float.class || "float".equals(fieldType.getName())){ if(rs.getObject(fieldName)!=null) value = rs.getFloat(fieldName); } else if (fieldType == Double.class || "double".equals(fieldType.getName())){ if(rs.getObject(fieldName)!=null) value = rs.getDouble(fieldName); } else if (fieldType == Timestamp.class || fieldType == java.util.Date.class){ value = rs.getTimestamp(fieldName); } else value = rs.getString(fieldName); // 赋值操作 setMethod.invoke(pojo, new Object[] { value }); } } catch (Exception e1) { e1.printStackTrace(); } return pojo; }
 

转载于:https://my.oschina.net/HuifengWang/blog/232953

你可能感兴趣的文章
()-servlet.xml中剥离出的hibernate.cfg.xml
查看>>
WindowsServer2008配置MySql Proxy
查看>>
使用canvas输出base64_url
查看>>
真机调试DDMS无法访问Data
查看>>
LeetCode算法题-Average of Levels in Binary Tree(Java实现)
查看>>
LeetCode算法题-Unique Morse Code Words(Java实现)
查看>>
Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)...
查看>>
常用正则
查看>>
会议1.8
查看>>
HDU 5988 费用流 16青岛银牌题?
查看>>
SQLSERVER 维护计划无法删除
查看>>
python-迭代器模式
查看>>
Android自定义控件-EditText(可用于登陆界面)
查看>>
GCD的基本使用
查看>>
解救小哈——bfs广搜
查看>>
js数组去重的4个方法
查看>>
图片在线生成
查看>>
JAVA面试题解惑系列(四)——final、finally和finalize的区别
查看>>
gitlab 优化
查看>>
会话控制和cookie|session的详细介绍
查看>>