1. 程式人生 > >java學習筆記之DBUtils工具類

java學習筆記之DBUtils工具類

return on() 變參 ner where 占位符 使用步驟 args user

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 }

   

java學習筆記之DBUtils工具類