先貼**,後給設計思路。若有對**中的方法有疑惑的可以檢視jdk幫助文件:
/**
* 使用 jdbc 進行查詢,將結果賦值給物件的 field,返回存放物件的 list
*呼叫 preparedstatement 的 executequery() 方法進行查詢
* resultset:結果集,封裝可使用 jdbc 進行查詢的結果
* resultsetmetadata:jdbc元資料,可以得到結果集裡列的別名等
* @param :泛型
* @param sql:查詢語句
* @param args :補充佔位符的實參陣列
* @return
*/public static listgetselect(classclazz,string sql,object...args)
}//7. 返回物件放入list 中
list.add(entity);
//清空 map,下次迴圈繼續存鍵值
map.clear();
}} catch (exception e) finally
return list;
} //向物件的對應屬性賦值
private static void setfiledvalue(object obj,string filedname,object value) catch (exception e)
}
思路解析:實現思路:
獲取與遠端資料庫的連線,得到查詢結果集,
利用 resultsetmetad 的 getcolumncount() 方法獲取列的數量,getcolumnlabel() 方法獲取列的別名,將結果集存入 map中.
遍歷 map ,根據其 key 得到物件的 field 名並將其 value 值賦給 field。
遍歷完 map 後,物件的所有 field 都被賦值了,然後將物件存入 list中,至此一行結果處理完畢
重複 2 3 4 步驟,直到結果集讀完,即 resultset.next() 為 false。
返回存放物件的 list
接下來測試一下這個方法:
@test結果:public void testgetselect() ;
listpersons = new arraylist<>();
persons = jdbctools.getselect(clazz, sql, args);
system.out.println(persons.tostring());
}
JDBC利用反射編寫通用的查詢方法
廢話不多說,直接上 有注釋自己看。不明白就去看官方文件public t getresult class clazz,string sql,object.args 獲取查詢結果集 rs ps.executequery 通過resultset物件獲取resultsetmetadata物件 rsmd rs...
JDBC 元資料
何為元資料?元資料為描述資料的資料,主要是描述屬性的資料的資訊。簡單的說就是關於資料的資料。而在jdbc的學習中獲取資料的定義,如資料庫 表 列的定義資訊,就要用到元資料。在jdbc中使用的元資料有三種 資料庫元資料 引數元資料 結果集元資料。進行元資料的獲取之前我們先來定義用來連線和關閉資料庫的工...
C 利用反射編寫的SqlHelper類
以下是學習筆記 1,常用的查詢方法 例如 根據id查詢學生資訊 根據id查詢物件 查詢的物件 物件id public students find int id using 使用完會自動釋放 using sqlconnection conn new sqlconnection connstsring ...