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

文章來(lái)源:
http://m.tkk7.com/yijia/archive/2008/07/26/217716.html
posted on 2009-10-20 09:32
開(kāi)機(jī) 閱讀(94)
評(píng)論(0) 編輯 收藏