參考 隨筆:
自己動手做試卷管理系統(tǒng)-用戶管理部分
我增加了3個類:DB,Table,Row
DB:用來取得所有的table,并生產(chǎn)相應(yīng)的Table對象,存貯在HashTable中,使用方法getTable("tableName");可以從HashTable中取得。注意:生產(chǎn)Table對象的時候,用了構(gòu)造方法:new Table("tableName","mainPropertyName");mainProperty是給表設(shè)置的主鍵名,在config.properties中可以修改。
Table:定義了 取得某一行(getRow),插入記錄(insert)。這兩個方法都必須通過主鍵來操作。
刪除記錄(delete),搜索(search)。這兩個方法任意指定條件,如刪除 屬性username="321"的記錄。
計數(shù)(count),此方法有給定條件的,有無條件的(用來求 整個表有多少行)。
列表(list),返回一個List代表了整個表的信息。用到了RowSetDynaClass(在DBExcute類中),它是個好東東。
Row:更簡單了,兩個方法:set(String propertyName,String propertyValue)和get(String propertyName) 方法
我的目的就是來做一個操作數(shù)據(jù)庫的通用工具,當(dāng)環(huán)境和數(shù)據(jù)變化時,只需修改一下config.properties(當(dāng)然 性能和我這個業(yè)余的一樣,也是有點(diǎn)業(yè)余的)。
下面是我檢測的代碼:
try { //取得user表中主鍵名(這里的主鍵名是username)為Root的行記錄的密碼項(xiàng)的值
System.out.println(DB.getDB().getTable("user").getRow("Root").get("password"));
} catch (NotQueryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
有很多地方還需要完善,特別是異常類,我寫的異常類有點(diǎn)少,不夠用,然后定義的也不是很好。連接池不知道是怎么建的,我發(fā)現(xiàn)用連接太浪費(fèi)啦,就上面的代碼就執(zhí)行了3次連接,getTable的時候,getRow的時候,getPassword的時候,(用HashTable來存貯Tabel對象,盡可能的減少了連接,節(jié)約了資源)。等等很多問題,還請各位多多指教!!!
最后提醒一下:我只是在com.yijia_ctgu.DB包中增加了3個類,以前做的頁面jsp和servlet,bean都沒變化(還沒來得及用上這個工具)。java源文件和jsp文件的編碼是gb2312,注意改一下,不然會亂碼,其實(shí)用utf-8挺好的,不過我知道的遲了,現(xiàn)在想改,嫌麻煩的。
代碼下載:http://m.tkk7.com/Files/yijia/papermanage0.3.rar
改進(jìn)后的操作數(shù)據(jù)庫工具:http://m.tkk7.com/Files/yijia/yijia_ctgu.rar
更新時間:2008年7月30日
posted on 2008-07-26 21:33
開機(jī) 閱讀(304)
評論(0) 編輯 收藏 所屬分類:
javaweb