国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java反射機制解決數據庫查詢結果到Model類

2019-11-14 11:12:41
字體:
來源:轉載
供稿:網友
package com.Android.util;import java.lang.reflect.Method;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.util.ArrayList;import java.util.List;public class GetData { public static List resultSetToList(ResultSet rs, Class<?> cls) throws Exception { // 取得Method Method[] methods = cls.getMethods();// 獲得bean的所有方法 List list = new ArrayList(); // 用于獲取列數、或者列類型 ResultSetMetaData meta = rs.getMetaData(); Object obj = null; while (rs.next()) { // 獲取formbean實例對象 obj = cls.newInstance(); // 用Class.forName方法實例化對象和new創建實例化對象是有很大區別的,它要求JVM首先從類加載器中查找類,然后再實例化,并且能執行類中的靜態方法。而new僅僅是新建一個對象實例 // 循環獲取指定行的每一列的信息 for (int i = 1; i <= meta.getColumnCount(); i++) { // 當前列名 String colName = meta.getColumnName(i); // 設置方法名 String setMethodName = "set" + colName; // 遍歷Method Method setMethod = null; for (int j = 0; j < methods.length; j++) { if (methods[j].getName().equalsIgnoreCase(setMethodName)) { // 比較列名 setMethodName = methods[j].getName(); setMethod = methods[j]; // 獲取當前位置的值,返回Object類型 Object value = rs.getObject(colName); if (value == null) { continue; } // 實行Set方法 try { // // 利用反射獲取對象 // JavaBean內部屬性和ResultSet中一致時候 setMethod.invoke(obj, value); break; } catch (Exception e) { // JavaBean內部屬性和ResultSet中不一致時候,使用String來輸入值。 e.PRintStackTrace(); setMethod.invoke(obj, value.toString()); } } } } list.add(obj); } return list; } public static Object resultSetToBean(ResultSet rs, Class cls) throws Exception { // 取得Method Method[] methods = cls.getMethods();// 獲得bean的所有方法 // 用于獲取列數、或者列類型 ResultSetMetaData meta = rs.getMetaData(); Object obj = null; if (rs.next()) { // 獲取formbean實例對象 obj = cls.newInstance(); // 用Class.forName方法實例化對象和new創建實例化對象是有很大區別的,它要求JVM首先從類加載器中查找類,然后再實例化,并且能執行類中的靜態方法。而new僅僅是新建一個對象實例 // 循環獲取指定行的每一列的信息 for (int i = 1; i <= meta.getColumnCount(); i++) { // 當前列名 String colName = meta.getColumnName(i); // 設置方法名 String setMethodName = "set" + colName; // 遍歷Method Method setMethod = null; for (int j = 0; j < methods.length; j++) { if (methods[j].getName().equalsIgnoreCase(setMethodName)) { // 比較列名 setMethodName = methods[j].getName(); setMethod = methods[j]; // 獲取當前位置的值,返回Object類型 Object value = rs.getObject(colName); if (value == null) { continue; } // 實行Set方法 try { // // 利用反射獲取對象 // JavaBean內部屬性和ResultSet中一致時候 setMethod.invoke(obj, value); break; } catch (Exception e) { // JavaBean內部屬性和ResultSet中不一致時候,使用String來輸入值。 e.printStackTrace(); setMethod.invoke(obj, value.toString()); } } } } } return obj; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨眉山市| 荆门市| 绵竹市| 营口市| 当雄县| 宁阳县| 山东| 济源市| 布尔津县| 绥化市| 沙田区| 定结县| 长葛市| 麻城市| 宁德市| 大宁县| 墨脱县| 天祝| 合作市| 琼结县| 泰州市| 长汀县| 科尔| 塔河县| 黄浦区| 浦城县| 临清市| 江安县| 巴青县| 临洮县| 临武县| 儋州市| 上思县| 兴业县| 巴林左旗| 北京市| 区。| 长治县| 东阳市| 吉水县| 咸丰县|