日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java dbcp连接池_Java——DBCP连接池

發布時間:2024/3/24 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dbcp连接池_Java——DBCP连接池 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

連接池

實際開發中“獲得連接”或“釋放資源”是非常消耗系統資源的兩個過程,為了解決此類性能問題,通常情況我們采用連接池技術,來共享連接Connection。這樣我們就不需要每次都創建連接、釋放連接了,這些操作都交給了連接池

概念

用池來管理Connection,這樣可以重復使用Connection。有了池,所以我們就不用自己來創建Connection,而是通過池來獲取Connection對象。當使用完Connection后,調用Connection的close()方法也不會真的關閉Connection,而是把Connection“歸還”給池。池就可以再利用這個Connection對象了。

規范

Java為數據庫連接池提供了公共的接口:javax.sql.DataSource,各個廠商需要讓自己的連接池實現這個接口。這樣應用程序可以方便的切換不同廠商的連接池!

常見的連接池:DBCP、C3P0。

DBCP連接池

DBCP也是一個開源的連接池,是Apache Common成員之一,在企業開發中也比較常見,tomcat內置的連接池。

常見配置項

工具類

/*

* 使用DBCP實現數據庫的連接池

* 最基本四項完整

* 對于數據庫連接池其他配置,自定義

*/

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class JDBCUtils{

//創建出BasicDataSource類對象

private static BasicDataSource datasource = new BasicDataSource();

//靜態代碼塊,對BasicDataSource對象中進行自定義配置

static{

//數據庫連接信息,必須的

datasource.setDriverClassName("com.mysql.jdbc.Driver");

datasource.setUrl("jdbc:mysql://localhost:3306/day33_user");

datasource.setUsername("root");

datasource.setPassword("123");

//對連接池中的連接數量配置,可選的

datasource.setInitialSize(10);//初始化的連接數

datasource.setMaxActive(8);//最大連接數量

datasource.setMaxIdle(5);//最大空閑數

datasource.setMinIdle(1);//最小空閑

}

//定義靜態方法,返回BasicDataSource類的對象

public static DataSource getDataSource(){

return datasource;

}

}

測試類

/*

* 測試寫好的工具類,

* 提供的是一個DataSource接口的數據源

* QueryRunner類構造方法,接收DataSource接口的實現類

* 后面,調用方法update,query,無需傳遞他們Connection連接對象

*/

import java.sql.SQLException;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.ArrayListHandler;

import cn.itcast.jdbcutils.JDBCUtils;

public class QueryRunnerDemo{

public static void main(String[] args) {

select();

}

//定義2個方法,實現數據表的添加,數據表查詢

//QueryRunner類對象,寫在類成員位置

private static QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

//數據表查詢

public static void select(){

String sql = "SELECT * FROM sort";

try{

List list = qr.query(sql, new ArrayListHandler());

for(Object[] objs : list){

for(Object obj : objs){

System.out.print(obj+"\t");

}

System.out.println();

}

}catch(SQLException ex){

throw new RuntimeException("數據查詢失敗");

}

}

//數據表添加數據

public static void insert(){

String sql = "INSERT INTO sort (sname,sprice,sdesc)VALUES(?,?,?)";

Object[] params = {"水果",100.12,"剛剛上市的核桃"};

try{

int row = qr.update(sql, params);  // 不需要加conn連接

System.out.println(row);

}catch(SQLException ex){

throw new RuntimeException("數據添加失敗");

}

}

}

總結

以上是生活随笔為你收集整理的java dbcp连接池_Java——DBCP连接池的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。