• java学习笔记之DBUtils工具包


    DBUtils工具包

    一.介绍

      DBUtils是Apache组织开源的数据库工具类。

    二.使用步骤

      ①.创建QueryRunner对象

      ②.调用update()方法或者query()方法执行sql语句

    三.构造方法及静态方法

      QueryRunner类

      1.构造方法

        ①.无参构造

          QueryRunner qr =new  QueryRunner();

         使用无参构造的时候,调用update方法和query方法时就需要使用带Connection 类型参数的重载形式

        ②.有参构造

          QueryRunner  qr= new QueryRunner(DataSource  dataSource);

          这个参数是连接池对象

      2.静态方法

        ①.int  update(Connection  con ,String sql ,Param);

          该方法用于增删改语句的操作

          参数介绍:

          参数一:连接池对象(这个在无参构造的时候使用)

          参数二:sql语句

          参数三:可变参数(就是sql占位符的值)

          返回值:int类型的  返回受影响的行数

       简单update  demo

     1 public class Demo {
     2     public static void main(String[] args) throws Exception {
     3         /*
     4          * 演示有参构造的update()方法
     5          * 
     6          * 首先得导入jar包
     7          * 配置好C3P0的配置文件与准备好C3P0工具类
     8          * 然后创建QueryRunner对象
     9          * 调用update方法
    10          * 最后处理结果
    11          */
    12         QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
    13         int re = qr.update("update user set name=? where uid=?","张三",2);
    14         if(re>0){
    15             System.out.println("修改成功");
    16         }else {
    17             System.out.println("修改失败");
    18         }
    19     }
    20 }

      附上简单的C3P0工具类

     1 public class C3P0Utils {
     2     private  static DataSource dataSource=new ComboPooledDataSource();
     3     /**
     4      * 获得DataSource实现类对象
     5      * @return
     6      */
     7     public static DataSource getDataSource(){
     8         return dataSource;
     9     }
    10     /**
    11      * 获得连接
    12      * @return
    13      * @throws Exception
    14      */
    15     public static Connection getConnection()throws Exception{
    16         return dataSource.getConnection();
    17     }
    18 }

       ②.query(Connection con , String sql  ,Param ...)

          该方法用于出查询操作

          参数介绍:

            参数一:Connection  数据库连接对象, 使用带参构造时可以不用

            参数二:sql语句      

            参数三:表示对结果集的处理方式 (ResultSetHandler接口)

                ArrayHandler: 表示将结果集第一行的数据存入数组
                ArrayListHandler 将结果集每一行的数据存入数组,多个数组存入集合 List<Object[]>

                BeanHandler 表示将结果集第一行的数据存入Java Bean对象
                BeanListHandler 表示将结果集每一行的数据存入Java Bean对象 ,多个对象存入集合

                ColumnListHandler 表示将某一列的数据存入集合


                MapHandler 表示将结果集第一行的数据存入Map集合 :键:列名 值:列的值
                MapListHandler 表示将结果集每一行的数据存入Map集合 多个Map存入List集合 List<Map<,>>

                ScalarHandler 获取一个值: count(*) sum(price)

           参数四:可变参数(就是sql占位符的值)

          使用BeanListHandler处理方式的demo:

    1     public void demo1() throws Exception{
    2         QueryRunner qr = new QueryRunner(MyC3P0Utils.getDataSource()); 
    3         List<Car> list = qr.query("select * from car where price<20 order by price desc", new BeanListHandler<>(Car.class));
    4         for (Car car : list) {
    5             System.out.println(car);
    6         }
    7     
    8     }

          javaBean类的编写:

     1 public class Car {
     2     private  int  cid;
     3     private String  cname;
     4     private String  company;
     5     private String grade;
     6     private double price;
     7     @Override
     8     public String toString() {
     9         return "Car [cid=" + cid + ", cname=" + cname + ", company=" + company + ", grade=" + grade + ", price=" + price
    10                 + "]";
    11     }
    12     public int getCid() {
    13         return cid;
    14     }
    15     public void setCid(int cid) {
    16         this.cid = cid;
    17     }
    18     public String getCname() {
    19         return cname;
    20     }
    21     public void setCname(String cname) {
    22         this.cname = cname;
    23     }
    24     public String getCompany() {
    25         return company;
    26     }
    27     public void setCompany(String company) {
    28         this.company = company;
    29     }
    30     public String getGrade() {
    31         return grade;
    32     }
    33     public void setGrade(String grade) {
    34         this.grade = grade;
    35     }
    36     public double getPrice() {
    37         return price;
    38     }
    39     public void setPrice(double price) {
    40         this.price = price;
    41     }
    42     public Car(int cid, String cname, String company, String grade, double price) {
    43         super();
    44         this.cid = cid;
    45         this.cname = cname;
    46         this.company = company;
    47         this.grade = grade;
    48         this.price = price;
    49     }
    50     public Car() {
    51         super();
    52         // TODO Auto-generated constructor stub
    53     }
    54 
    55 }

       

  • 相关阅读:
    easyUI之tree
    MSSQL索引优化
    MongoDB学习笔记(一) MongoDB介绍及安装
    项目经理必备的11种人际关系技能
    http协议详细介绍
    ERP存储过程
    UVA1339 UVALive3213 POJ2159 ZOJ2658 Ancient Cipher【密码】
    UVA1588 UVALive3712 POJ3158 Kickdown
    UVA1588 UVALive3712 POJ3158 Kickdown
    UVA10340 POJ1936 ZOJ1970 All in All【字符串匹配】
  • 原文地址:https://www.cnblogs.com/xuzhaocai/p/8207268.html
Copyright © 2020-2023  润新知