欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java學(xué)習(xí)筆記之DBUtils工具包詳解

 更新時(shí)間:2018年01月06日 09:43:23   作者:猿上生活  
下面小編就為大家分享一篇java學(xué)習(xí)筆記之DBUtils工具包詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

DBUtils工具包

一.介紹

DBUtils是Apache組織開源的數(shù)據(jù)庫工具類。

二.使用步驟

①.創(chuàng)建QueryRunner對(duì)象

②.調(diào)用update()方法或者query()方法執(zhí)行sql語句

三.構(gòu)造方法及靜態(tài)方法

QueryRunner類

1.構(gòu)造方法

①.無參構(gòu)造

QueryRunner qr =new QueryRunner();

使用無參構(gòu)造的時(shí)候,調(diào)用update方法和query方法時(shí)就需要使用帶Connection 類型參數(shù)的重載形式

②.有參構(gòu)造

QueryRunner qr= new QueryRunner(DataSource dataSource);

這個(gè)參數(shù)是連接池對(duì)象

2.靜態(tài)方法

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

該方法用于增刪改語句的操作

參數(shù)介紹:

參數(shù)一:連接池對(duì)象(這個(gè)在無參構(gòu)造的時(shí)候使用)

參數(shù)二:sql語句

參數(shù)三:可變參數(shù)(就是sql占位符的值)

返回值:int類型的 返回受影響的行數(shù)

簡單update demo

public class Demo {
 public static void main(String[] args) throws Exception {
  /*
   * 演示有參構(gòu)造的update()方法
   * 
   * 首先得導(dǎo)入jar包
   * 配置好C3P0的配置文件與準(zhǔn)備好C3P0工具類
   * 然后創(chuàng)建QueryRunner對(duì)象
   * 調(diào)用update方法
   * 最后處理結(jié)果
   */
  QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
  int re = qr.update("update user set name=? where uid=?","張三",2);
  if(re>0){
   System.out.println("修改成功");
  }else {
   System.out.println("修改失敗");
  }
 }
}

附上簡單的C3P0工具類

public class C3P0Utils {
 private static DataSource dataSource=new ComboPooledDataSource();
 /**
  * 獲得DataSource實(shí)現(xiàn)類對(duì)象
  * @return
  */
 public static DataSource getDataSource(){
  return dataSource;
 }
 /**
  * 獲得連接
  * @return
  * @throws Exception
  */
 public static Connection getConnection()throws Exception{
  return dataSource.getConnection();
 }
}

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

該方法用于出查詢操作

參數(shù)介紹:

參數(shù)一:Connection 數(shù)據(jù)庫連接對(duì)象, 使用帶參構(gòu)造時(shí)可以不用

參數(shù)二:sql語句

參數(shù)三:表示對(duì)結(jié)果集的處理方式 (ResultSetHandler接口)

ArrayHandler: 表示將結(jié)果集第一行的數(shù)據(jù)存入數(shù)組

ArrayListHandler 將結(jié)果集每一行的數(shù)據(jù)存入數(shù)組,多個(gè)數(shù)組存入集合 List<Object[]>

BeanHandler 表示將結(jié)果集第一行的數(shù)據(jù)存入Java Bean對(duì)象

BeanListHandler 表示將結(jié)果集每一行的數(shù)據(jù)存入Java Bean對(duì)象 ,多個(gè)對(duì)象存入集合

ColumnListHandler 表示將某一列的數(shù)據(jù)存入集合

MapHandler 表示將結(jié)果集第一行的數(shù)據(jù)存入Map集合 :鍵:列名 值:列的值

MapListHandler 表示將結(jié)果集每一行的數(shù)據(jù)存入Map集合 多個(gè)Map存入List集合 List<Map<,>>

ScalarHandler 獲取一個(gè)值: count(*) sum(price)

參數(shù)四:可變參數(shù)(就是sql占位符的值)

使用BeanListHandler處理方式的demo:

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

javaBean類的編寫:

public class Car {
 private int cid;
 private String cname;
 private String company;
 private String grade;
 private double price;
 @Override
 public String toString() {
  return "Car [cid=" + cid + ", cname=" + cname + ", company=" + company + ", grade=" + grade + ", price=" + price
    + "]";
 }
 public int getCid() {
  return cid;
 }
 public void setCid(int cid) {
  this.cid = cid;
 }
 public String getCname() {
  return cname;
 }
 public void setCname(String cname) {
  this.cname = cname;
 }
 public String getCompany() {
  return company;
 }
 public void setCompany(String company) {
  this.company = company;
 }
 public String getGrade() {
  return grade;
 }
 public void setGrade(String grade) {
  this.grade = grade;
 }
 public double getPrice() {
  return price;
 }
 public void setPrice(double price) {
  this.price = price;
 }
 public Car(int cid, String cname, String company, String grade, double price) {
  super();
  this.cid = cid;
  this.cname = cname;
  this.company = company;
  this.grade = grade;
  this.price = price;
 }
 public Car() {
  super();
  // TODO Auto-generated constructor stub
 }
}

以上這篇java學(xué)習(xí)筆記之DBUtils工具包詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Spring中如何使用設(shè)計(jì)模式

    淺談Spring中如何使用設(shè)計(jì)模式

    這篇文章主要介紹了淺談Spring中如何使用設(shè)計(jì)模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Spring Boot支持Crontab任務(wù)改造的方法

    Spring Boot支持Crontab任務(wù)改造的方法

    這篇文章主要介紹了Spring Boot支持Crontab任務(wù)改造的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • springboot實(shí)現(xiàn)返回文件流

    springboot實(shí)現(xiàn)返回文件流

    這篇文章主要介紹了springboot實(shí)現(xiàn)返回文件流方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決

    SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決

    這篇文章主要介紹了SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java設(shè)計(jì)模式之策略模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java設(shè)計(jì)模式之策略模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    策略模式是對(duì)算法的封裝,把一系列的算法分別封裝到對(duì)應(yīng)的類中,并且這些類實(shí)現(xiàn)相同的接口,相互之間可以替換。接下來通過本文給大家分享Java設(shè)計(jì)模式之策略模式,感興趣的朋友一起看看吧
    2017-08-08
  • 淺談spring和spring MVC的區(qū)別與關(guān)系

    淺談spring和spring MVC的區(qū)別與關(guān)系

    下面小編就為大家?guī)硪黄獪\談spring和spring MVC的區(qū)別與關(guān)系。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • java File類重要方法以及如何操作文件詳解

    java File類重要方法以及如何操作文件詳解

    這篇文章主要為大家介紹了java File類重要方法以及如何操作文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java測試框架Mockito的簡明教程

    Java測試框架Mockito的簡明教程

    這篇文章主要介紹了Java測試框架Mockito的簡明教程,Mock 測試是單元測試的重要方法之一。本文介紹了基于 Java 語言的 Mock 測試框架 – Mockito 的使用。,需要的朋友可以參考下
    2019-06-06
  • Java的枚舉,注解和反射(一)

    Java的枚舉,注解和反射(一)

    今天小編就為大家分享一篇關(guān)于Java枚舉,注解與反射原理說明,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-07-07
  • 詳解SpringBoot接收參數(shù)的五種形式

    詳解SpringBoot接收參數(shù)的五種形式

    在Spring Boot中,接收參數(shù)可以通過多種方式實(shí)現(xiàn),本文給大家介紹了SpringBoot接收參數(shù)的五種形式,并通過代碼和圖文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03

最新評(píng)論