JDBC泛型類反射封裝結果集
// 在此輸入java程式碼 * @[author]param[/author] args */ public static void main(String[] args) { String sql="select * from user where name=1"; try { User user=BaseDao.getClass(sql, User.class); System.out.println(user.getName()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 使用泛型類封裝查詢結果 * @[author]param[/author] <T> * @throws Exception */ public static <T> T getClass(String sql, Class<T> clazz) throws Exception { PreparedStatement ps = null; ResultSet rs = null; Connection con=JDBCUtil.getConnection(); ps=con.prepareStatement(sql); rs=ps.executeQuery(); //結果集的欄位 ResultSetMetaData md=rs.getMetaData(); //將欄位新增到string陣列 String[] mdString=new String[md.getColumnCount()]; for(int i=0;i<md.getColumnCount();i++) { mdString[i]=md.getColumnLabel(i+1); } //宣告一個泛型類 T t=null; //獲得傳入類的方法集合 Method[] methods=clazz.getMethods(); if(rs.next()) { t=clazz.newInstance(); for(int j=0;j<mdString.length;j++) { String clsMethod=mdString[j]; //將結果集的欄位首字母替換成大寫並且以set開頭(例:setName物件類裡面的set方法) clsMethod="set"+clsMethod.replaceFirst(clsMethod.substring(0,1), clsMethod.substring(0, 1).toUpperCase()); for(Method m:methods) { //匹配傳入類的方法集合如果匹配成功則執行。 if(clsMethod.equals(m.getName())) { m.invoke(t, rs.getObject(j+1)); } } } } return t; } <p class="indent"> |
[該貼被wtsoftware於2012-09-09 17:07修改過]
[該貼被wtsoftware於2012-09-09 17:32修改過]
相關文章
- java學習 -- 利用類的反射和泛型自己動手寫jdbc封裝小類庫Java反射泛型JDBC封裝
- Gson泛型封裝泛型封裝
- (反射+內省機制的運用)處理jdbc的結果集反射JDBC
- Jdbc 封裝, 利用反射, 加入連線池JDBC封裝反射
- 統一結果封裝封裝
- 封裝JDBC—非框架開發必備的封裝類封裝JDBC框架
- 泛型類和泛型方法泛型
- APIjson多層資料實體類封裝(利用泛型技術)APIJSON封裝泛型
- 泛型類、泛型方法及泛型應用泛型
- Java反射—方法的反射、深入瞭解泛型Java反射泛型
- 反射-通過反射越過泛型檢查反射泛型
- TypeScript 泛型介面和泛型類TypeScript泛型
- 【Java反射】Java 泛型基礎Java反射泛型
- 【譯】9. Java反射——泛型Java反射泛型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 泛型類及系統中常用的泛型類泛型
- JDBC常用方法封裝JDBC封裝
- JAVA泛型類Java泛型
- Java反射給泛型集合賦值Java反射泛型賦值
- DataTable轉換list泛型集合(反射)泛型反射
- 封裝ResultVO實現統一返回結果封裝
- 泛型類派生子類泛型
- Swift 運用協議泛型封裝網路層Swift協議泛型封裝
- Jdbc引入連線池,JdbcTemplate處理結果集的優化JDBC優化
- 泛型,內部類泛型
- 封裝springmvc處理ajax請求結果封裝SpringMVC
- 【譯】在非泛型類中建立泛型方法泛型
- Go中泛型和反射比較指南Go泛型反射
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元
- 泛型總結泛型
- iOS FMDB有返回結果集和無返回結果集iOS
- Java進階 | 泛型機制與反射原理Java泛型反射
- 通過反射認識泛型的本質反射泛型
- 8.集合、泛型、列舉、註解、反射泛型反射
- 匿名內部類泛型泛型
- 泛型類序列化泛型
- java反射機制解決資料庫查詢結果到Model類Java反射資料庫
- Go Internals: Go 反射 vs Java 泛型 vs cpp 模板Go反射Java泛型