DBUtils工具类库的QueryRunner类 、ResultSetHandler接口

时间:2021-11-05 06:18:35

                          一、ResultSetHandler是一个接口: Apache已经为我们提供了众多好用的实现类 。例如:

                           封装了结果集

                                  BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中(返回对应的 T 的一个实例类的对象.)

                      BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里(返回 T 所对应对象的 List )

                       ③ScalarHandler:获取结果集中第一行数据指定列的值,(常用来进行单值查询)

                       ④还有其他的不常用实现类

              参考代码:public List<T> getForList(String sql, Object ... args){

                                          Connection connection = null;

                                                       try {
                                                       connection = JdbcUtils.getConnection();
                                                       return queryRunner.query(connection, sql,new BeanListHandler<>(clazz), args); //clazz是T的反射
                                                        } catch (Exception e) {
                                                         e.printStackTrace();
                                                        } finally{
                                                         JdbcUtils.releaseConnection(connection);
                                                        }

                                                        return null;
                                                        }


                  二、QueryRunner类:QueryRunner中提供对sql语句操作的API

                                                     常用构造器:QueryRunner()

                                                                              QueryRunner(DataSource ds) //DataSource是C3p0工具类 的接口,getDataSource可获取

                                                                               QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()))

                                                                       它主要有三个方法:
                                                                                                query() 用于执行select
                                                                                                 update() 用于执行insert/update/delete
                                                                                                 batch() 批处理


       参考网址:https://www.2cto.com/database/201408/329534.html   

                       http://www.cnblogs.com/wang-meng/p/5525389.html