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

首頁 > 學院 > 開發(fā)設計 > 正文

java反射機制解決數(shù)據(jù)庫查詢結(jié)果到Model類

2019-11-14 11:08:34
字體:
供稿:網(wǎng)友
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(); // 用于獲取列數(shù)、或者列類型 ResultSetMetaData meta = rs.getMetaData(); Object obj = null; while (rs.next()) { // 獲取formbean實例對象 obj = cls.newInstance(); // 用Class.forName方法實例化對象和new創(chuàng)建實例化對象是有很大區(qū)別的,它要求JVM首先從類加載器中查找類,然后再實例化,并且能執(zhí)行類中的靜態(tài)方法。而new僅僅是新建一個對象實例 // 循環(huán)獲取指定行的每一列的信息 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內(nèi)部屬性和ResultSet中一致時候 setMethod.invoke(obj, value); break; } catch (Exception e) { // JavaBean內(nèi)部屬性和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的所有方法 // 用于獲取列數(shù)、或者列類型 ResultSetMetaData meta = rs.getMetaData(); Object obj = null; if (rs.next()) { // 獲取formbean實例對象 obj = cls.newInstance(); // 用Class.forName方法實例化對象和new創(chuàng)建實例化對象是有很大區(qū)別的,它要求JVM首先從類加載器中查找類,然后再實例化,并且能執(zhí)行類中的靜態(tài)方法。而new僅僅是新建一個對象實例 // 循環(huán)獲取指定行的每一列的信息 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內(nèi)部屬性和ResultSet中一致時候 setMethod.invoke(obj, value); break; } catch (Exception e) { // JavaBean內(nèi)部屬性和ResultSet中不一致時候,使用String來輸入值。 e.printStackTrace(); setMethod.invoke(obj, value.toString()); } } } } } return obj; }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 团风县| 玉溪市| 龙胜| 松溪县| 福鼎市| 永平县| 邯郸市| 藁城市| 潢川县| 绵竹市| 淳化县| 阳朔县| 新龙县| 太白县| 兖州市| 文成县| 昌黎县| 华蓥市| 安泽县| 绵阳市| 裕民县| 台东市| 上饶县| 城步| 保定市| 渑池县| 承德市| 营山县| 日土县| 南丹县| 江口县| 章丘市| 西乌| 钟山县| 册亨县| 保定市| 和林格尔县| 南城县| 邻水| 南城县| 浑源县|