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) throwsException { 3 /* 4 * 演示有參構造的update()方法 5 * 6 * 首先得導入jar包 7 * 配置好C3P0的配置文件與準備好C3P0工具類 8 * 然後創建QueryRunner對象 9 * 調用update方法 10 * 最後處理結果 11 */ 12 QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); 13 intre = 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工具類