参考 随笔:
自己动手做试卷管理系统-用户管理部分
我增加了3个类:DB,Table,Row
DB:用来取得所有的table,并生产相应的Table对象,存贮在HashTable中,使用方法getTable("tableName");可以从HashTable中取得。注意:生产Table对象的时候,用了构造方法:new Table("tableName","mainPropertyName");mainProperty是给表设置的主键名,在config.properties中可以修改。
Table:定义了 取得某一行(getRow),插入记录(insert)。这两个方法都必须通过主键来操作。
删除记录(delete),搜索(search)。这两个方法任意指定条件,如删除 属性username="321"的记录。
计数(count),此方法有给定条件的,有无条件的(用来求 整个表有多少行)。
列表(list),返回一个List代表了整个表的信息。用到了RowSetDynaClass(在DBExcute类中),它是个好东东。
Row:更简单了,两个方法:set(String propertyName,String propertyValue)和get(String propertyName) 方法
我的目的就是来做一个操作数据库的通用工具,当环境和数据变化时,只需修改一下config.properties(当然 性能和我这个业余的一样,也是有点业余的)。
下面是我检测的代码:
try { //取得user表中主键名(这里的主键名是username)为Root的行记录的密码项的值
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();
}
有很多地方还需要完善,特别是异常类,我写的异常类有点少,不够用,然后定义的也不是很好。连接池不知道是怎么建的,我发现用连接太浪费啦,就上面的代码就执行了3次连接,getTable的时候,getRow的时候,getPassword的时候,(用HashTable来存贮Tabel对象,尽可能的减少了连接,节约了资源)。等等很多问题,还请各位多多指教!!!
最后提醒一下:我只是在com.yijia_ctgu.DB包中增加了3个类,以前做的页面jsp和servlet,bean都没变化(还没来得及用上这个工具)。java源文件和jsp文件的编码是gb2312,注意改一下,不然会乱码,其实用utf-8挺好的,不过我知道的迟了,现在想改,嫌麻烦的。
代码下载:http://www.blogjava.net/Files/yijia/papermanage0.3.rar
改进后的操作数据库工具:http://www.blogjava.net/Files/yijia/yijia_ctgu.rar
更新时间:2008年7月30日
posted on 2008-07-26 21:33
开机 阅读(295)
评论(0) 编辑 收藏 所属分类:
javaweb