DBUtils是apache组织的一个工具类,jdbc的框架,更方便我们使用

使用步骤:

  1.导入jar包(commons-dbutils-1.4.jar,c3p0-0.9.1.2.jar)

  1.1导入DataSourceUtils类(如何导入并配置)

  2.创建一个queryrunner类

    queryrunner作用:操作sql语句
                构造方法:

new QueryRunner(Datasource ds);//ds为一个数据源 eg:DataSourceUtils.getDataSource()

  3.编写sql

  4.执行sql

    uery(..):执行r操作
            update(...):执行cud操作

一.dbutils的CUD

import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;
import util.DataSourceUtils;

/**
 *dbutils的 CUD
 *建立在 DataSourceUtils之上
 */
public class DBUtilsCUD {
    //insert
    @Test
    public void f1() throws SQLException{

        //创建QueryRunner
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());

        //编写sql
        String sql = "insert into student values(31,?)";

        //执行sql
        qr.update(sql, "3131");
    }

    //update
    @Test
    public void f2() throws SQLException{

        //创建QueryRunner
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());

        //编写sql
        String sql = "update student set name=? where id=?";

        //执行sql
        qr.update(sql, "xxxxx",31);
    }

    //delete
    @Test
    public void f3() throws SQLException{

        //创建QueryRunner
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());

        //编写sql
        String sql = "delete from student  where id=?";

        //执行sql
        qr.update(sql,31);
    }
}

二.dbutils的R

主要是几种ResultSetHandler
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;

import domain.Student;
import util.DataSourceUtils;

/*
 * dbutils的R操作
 * 主要是几种ResultSetHandler
 * */
public class DBUtilsR {

    /*☆☆☆☆☆
     * 将查询结果的第一条记录封装成指定的bean对象,返回
     * */
    @Test
    public void beanHandler() throws SQLException{

        QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

        String sql="select * from student";

        Student bean = qr.query(sql,new BeanHandler<>(Student.class));

        System.out.println(bean);
    }

    /*☆☆☆☆☆
     * 将查询结果的每一条记录封装成指定的bean对象,将每一个bean对象放入list中 返回.
     * */
    @Test
    public void beanListHandler() throws SQLException{

        QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

        String sql="select * from student";

        List<Student> list = qr.query(sql,new BeanListHandler<>(Student.class));
        for (Student bean : list) {
            System.out.println(bean);
        }
    }

    /*☆☆☆
     * 将查询结果的每一条记录封装map集合,将每一个map集合放入list中返回
     * */
    @Test
    public void mapListHandler() throws SQLException{

        QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

        String sql="select * from student";

        List<Map<String, Object>> list = qr.query(sql,new MapListHandler());
        for (Map<String, Object> map : list) {
            System.out.println(map);
        }
    }

    /*☆☆☆
     * 针对于聚合函数 例如:count(*) 返回的是一个Long值
     * */
    @Test
    public void ScalarHandler() throws SQLException{

        QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());

        String sql="select count(*) from student";

        Object obj = qr.query(sql, new ScalarHandler());

        System.out.println(obj);

    }

}
 其它几种ResultSetHandler
(了解)ArrayHandler, 将查询结果的第一条记录封装成数组,返回
(了解)ArrayListHandler, 将查询结果的每一条记录封装成数组,将每一个数组放入list中返回
(了解)ColumnListHandler, 将查询结果的指定一列放入list中返回
(了解)MapHandler, 将查询结果的第一条记录封装成map,字段名作为key,值为value 返回

DBUtils(DataSourceUtils提供数据源)的更多相关文章

  1. RDLC报表数据集的一个细节,导致错误为 尚未数据源提供数据源实例

    报表中,数据集的名字DataSet_CZ, 这里报表这样加载,视乎是的. reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporti ...

  2. c# 数据表DataTable给devexpress的gridControl提供数据源

    C# DataTable 详解 参考:https://www.cnblogs.com/Sandon/p/5175829.html http://blog.csdn.net/singgel/articl ...

  3. Apache提供的dbUtils

    一.介绍 apache组织为我们提供了dbUtils实用工具(一些jar包),封装了一些查询的类和借口,相对自己定义的来说,可以简化很多操作 dbUtils提供了核心功能 1.QueryRunner  ...

  4. BenUtils组件和DbUtils组件

    BenUtils组件和DbUtils组件 [TOC] 1.BenUtils组件 1.1.简介 程序中对javabean的操作很频繁,所有Apache提供了一套开源api,方便javabean的操作!即 ...

  5. javaweb学习总结—Apache的DBUtils框架学习

    注明: 本文转载自http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache ...

  6. Apache—DBUtils框架

    1.所需要jar包 commons-collections-2.1.1.jarmchange-commons-java-0.2.11.jarmysql-connector-java-5.1.18-bi ...

  7. JavaWeb学习总结(十四)--Apache的DBUtils

    一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...

  8. DBUtils学习

    1.       DBUtils是JDBC的简单封装,可以和JDBC混合使用. 2.       DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次 ...

  9. Apache—DBUtils框架简介

    转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...

随机推荐

  1. 《parsing techniques》中文翻译和正则引擎解析技术入门

    http://parsing-techniques.duguying.net/ (中文版) https://swtch.com/~rsc/regexp/ https://blog.csdn.net/m ...

  2. 【JZOJ6370】基础 fake 练习题

    description 装饰者坐在树荫下听着长者讲述以前的故事: 大神 yk 非常喜欢树,便钦点班里的 n 个小蒟蒻站在一棵 n 个点以 1 为根的树上,并且每个点上恰好有 1 个小蒟蒻. 大神 yk ...

  3. thinkphp ajax返回

    ThinkPHP可以很好的支持AJAX请求,系统的\Think\Controller类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端.并且支持JSON.JSONP.XML和EVAL四 ...

  4. gitbook新版本"gitbook build"命令导出的html不能跳转的解决办法

    使用的是win7系统,gitbook新版本不支持html跳转功能,所以要降版本至2.6.7 解决办法如下: 第一步: 生成时指定gitbook的版本, 本地没有会先下载 gitbook build - ...

  5. 尚学python课程---13、python基础语法

    尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性  :作用:比如: ...

  6. mysql中geometry类型的简单使用

    mysql中geometry类型的简单使用 编写本文的目的: 让和两天前的我一样的初学者,能够更快的使用geometry类型存储空间点数据    也是为了自己加深印象,更熟练的使用geometry类型 ...

  7. 通过apiservice反向代理访问service

    第一种:NodePort类型 type: NodePort ports: - port: 80 targetPort: 80 nodePort: 30008 ​ 第二种:ClusterIP类型 typ ...

  8. 《Python之BMI计算》

    <Python之BMI计算> 前段时间写了个 BMI 因为刚刚开始学 有几个错误 第一个: 厘米我当时也没注意因为觉得去掉0.00的话后面1866666666是正确的BMI值 刚刚去看看去 ...

  9. raw_input和sys.stdin.readline()

    sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',因此用len计算长度时是把换行符'\n'算进去了的; raw_input( )获取输入时返回的结果是不包含末尾的换行 ...

  10. Ubuntu环境下java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    一.问题描述 Ubuntu环境中,将maven项目打包成jar包传到服务器中后运行以下指令: $ java -cp my.jar com.myproject.Main 遇到报错: java.lang. ...