发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

我说说apache对数据库结果集的封装dbutils。jar



我说说apache对数据库结果集的封装dbutils。jar

好处就是省代码。。。杠杠滴省。。
学习java免不了和数据库打交道。下面我介绍下apache的一个类库,很好用的,没那么多的get和set了,
因为我们知道使用javabean来对数据库中的字段进行封装保存,取出免不了get,设置又要set。而今天这个类库就不用,
他就是 commons-dbutils-1.1.jar,也不知道大家有没有用过的,心得大家一块分享下。
首先我们先看一个我们常规的得到查询数据库所得到的ResultSet。
1、表:person:字段:username,id,age .要查id为1 的用户信息, 用javabean封装,PersonVo
public  PersonVo getInfo(int id) throws Exception {
        PersonVo pv = new PersonVo();
        String sql = "SELECT * FROM person WHERE id = " + id;
        Connection connection = super.getConnection();
        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(sql);
        while (rs.next()) {
        pv.setId(rs.getInt(1));
        pv.setUsername(rs.getString(2));
        pv.setAge(rs.getInt(3));
}

ok,我们得到了。
下面开始介绍dbutils.jar
今天我们主要使用org.apache.commons.dbutils.handler下面的类
主要的类有: ArrayHandler,ArrayListHandler,BeanHandler,BeanListHandler,MapHandler,MapListHandler
1.同样是要得到一条结果,那我们就可以用ArrayHandler或BeanHandler或MapHandler.
下面看方法
public PersonVo getInfo(int id) throws Exception {
        QueryRunner queryRunner = new QueryRunner();
        String sql = "select * from person where id = " + id;
        return  (PersonVo)queryRunner.query(getConnection(), sql,new BeanHandler(PersonVo.class));
}

QueryRunner我个人觉得和我们以前用过的Statement差不多。
他有一个方法query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler rsh) ,其他的大家可以下载下来
自己试着用下。
getConnection() 是拿到一个和数据库的Connection。
这样我们在前台,就直接可以
PersonVo pv = new Test().getInfo(1);
System.out.println(pv.getUsername());

如果结果有一条以上,就要用BeanListHandler,MapListHandler.
如:
public List<PersonVo> getRegist3() throws Exception {
        QueryRunner queryRunner = new QueryRunner();
        String sql = "select * from person";
        return  (List)queryRunner.query(getConnection(), sql,new BeanListHandler(PersonVo.class));
}


---------------
ps:MapHandler
3.
public Map getRegist() throws Exception {
                QueryRunner queryRunner = new QueryRunner();
                String sql = "select * from person where id = 2";
                return (Map) queryRunner.query(getConnection(), sql,new MapHandler());
}

MapListHandler
4.
public List<Map> getRegist4() throws Exception {
                QueryRunner queryRunner = new QueryRunner();
                String sql = "select * from person";
                return  (List)queryRunner.query(getConnection(), sql,new MapListHandler());
}


大家可以使用一下,如果数据库中的字段有上千个,看看省去了多少代码。。。。。hoho。。。不对请拍砖。
commons-dbutils-1.1.jar (33976)
commons-dbutils-1.1.jar
.不.要.轻.信.你.听.到.的.每.件.事..不.要.花.光.你.的.所.有..不.要.想.睡.多.久.就.睡.多.久.]无.论.何.时.说.“对.不.起”请.看.着.对.方.的.眼.睛。] 永.远.不要.忽.视.别.人.的.梦.想.。]. .永.远.不.要.以.貌.取.人..。慢.慢.地.说,但.要.迅.速.地.想。..总.有.一.种.平.凡.,让.我.们.泪.流.满.面..
编辑 回复 快速回复 TOP

Re:我说说apache对数据库结果集的封装dbutils。jar

每次都得我替你编辑。

你可以选择一部分Java代码,然后点那个【J】 就可以把那一部分做成Java代码了。

不要全部都是Java代码哦
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:我说说apache对数据库结果集的封装dbutils。jar

袄。。 。。又麻烦了。
.不.要.轻.信.你.听.到.的.每.件.事..不.要.花.光.你.的.所.有..不.要.想.睡.多.久.就.睡.多.久.]无.论.何.时.说.“对.不.起”请.看.着.对.方.的.眼.睛。] 永.远.不要.忽.视.别.人.的.梦.想.。]. .永.远.不.要.以.貌.取.人..。慢.慢.地.说,但.要.迅.速.地.想。..总.有.一.种.平.凡.,让.我.们.泪.流.满.面..
编辑 回复 快速回复 TOP

Re:我说说apache对数据库结果集的封装dbutils。jar

这个jar包是不错,但现在有了Spring。
qjyong-CSDN-blog:http://blog.csdn.net/qjyong
编辑 回复 快速回复 TOP
发新话题