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修改過]
相關文章
- Gson泛型封裝泛型封裝
- Jdbc 封裝, 利用反射, 加入連線池JDBC封裝反射
- (反射+內省機制的運用)處理jdbc的結果集反射JDBC
- 如何用反射呼叫泛型類的方法反射泛型
- 統一結果封裝封裝
- 泛型類和泛型方法泛型
- 泛型類、泛型方法及泛型應用泛型
- JDBC常用方法封裝JDBC封裝
- 【Java反射】Java 泛型基礎Java反射泛型
- TypeScript 泛型介面和泛型類TypeScript泛型
- Java反射給泛型集合賦值Java反射泛型賦值
- Swift 運用協議泛型封裝網路層Swift協議泛型封裝
- 泛型類派生子類泛型
- Go中泛型和反射比較指南Go泛型反射
- 【譯】在非泛型類中建立泛型方法泛型
- 泛型,內部類泛型
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元
- 泛型總結泛型
- 封裝springmvc處理ajax請求結果封裝SpringMVC
- 封裝ResultVO實現統一返回結果封裝
- LinkedList重寫(5)LinkedList簡單的封裝和增加泛型封裝泛型
- 8.集合、泛型、列舉、註解、反射泛型反射
- 通過反射認識泛型的本質反射泛型
- Java進階 | 泛型機制與反射原理Java泛型反射
- 詳解JDBC資料庫連結及相關方法的封裝JDBC資料庫封裝
- Go Internals: Go 反射 vs Java 泛型 vs cpp 模板Go反射Java泛型
- TS系列之介面/類/泛型泛型
- C# 透過反射(Reflection)呼叫不同名泛型方法C#反射泛型
- 好程式設計師Java學習路線分享Java案例-封裝JDBC工具類程式設計師Java封裝JDBC
- 封裝Date工具類封裝
- 封裝Redis工具類封裝Redis
- 封裝和多型封裝多型
- 封裝,特性,多型封裝多型
- JAVA API:ArrayList(泛型類)基本使用JavaAPI泛型
- TS類,介面,泛型的簡介泛型
- iOS FMDB有返回結果集和無返回結果集iOS
- 【java】【泛型】泛型geneticJava泛型
- c#封裝DBHelper類C#封裝
- 4、類和物件—封裝物件封裝