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

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

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

2019-11-14 12:05:26
字體:
來源:轉載
供稿:網友
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; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新疆| 武夷山市| 茶陵县| 翼城县| 赤水市| 卢氏县| 曲沃县| 泰和县| 山丹县| 桦甸市| 贵港市| 永兴县| 丹凤县| 霍邱县| 富蕴县| 江源县| 界首市| 江西省| 南皮县| 云和县| 北安市| 四会市| 班戈县| 呼伦贝尔市| 靖州| 广东省| 甘谷县| 伊川县| 宝应县| 阿拉善盟| 左权县| 武汉市| 迭部县| 濮阳县| 雅安市| 富川| 朝阳区| 南陵县| 普兰店市| 安乡县| 赣榆县|