簡單建立資料庫連線池幷包裝查詢程式碼
一:準備Jar包
ojdbc14.jar:oracle資料庫驅動
commons-lang-2.6.jar:工具包
二:日誌工具類
1:建立資料庫連結配置檔案db.properties(儲存在src下):
[html] view plaincopyprint?- jdbc.url=jdbc:oracle:thin:@xx.xx.xx.xx:1521:YY
- jdbc.driverClass=oracle.jdbc.driver.OracleDriver
- jdbc.userName=root
-
jdbc.password
- jdbc.initPoolsSize=4
這裡還有很多考慮不足的地方,比如:需要建立一個定時任務,定時進行查詢來防止連結超時。
[java] view plaincopyprint?- publicclass DBUtil {
- privatestatic String url = null;
- privatestatic String driverClass = null;
-
privatestatic String userName =
- privatestatic String password = null;
- privatestaticint initPoolsSize = 2;
- privatestaticint poolIndex = 0;//當前已使用的連結數量
- privatestatic Object locked = new Object();//lock物件
- privatestatic List<Connection> connPools = new ArrayList<Connection>();
- /**
-
* 靜態初始化
- */
- static {
- InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
- Properties p = new Properties();
- try {
- p.load(in);
- url = p.getProperty("jdbc.url");
- driverClass = p.getProperty("jdbc.driverClass");
- userName = p.getProperty("jdbc.userName");
- password = p.getProperty("jdbc.password");
- initPoolsSize = Integer.parseInt(p.getProperty("jdbc.initPoolsSize"));
- } catch (IOException e) {
- WebLogger.showWarning("資料庫連結屬性檔案讀取失敗:"+e.getCause());
- }
- try {
- Class.forName(driverClass);
- } catch (ClassNotFoundException e) {
- WebLogger.showWarning("驅動載入失敗:"+e.getCause());
- }
- initConnPools(initPoolsSize);
- }
- /**
- * 初始化資料庫連線池
- */
- privatestaticboolean initConnPools(int poolSize){
- boolean flag = false;
- try {
- for(int i=0;i<poolSize;i++){
- connPools.add(DriverManager.getConnection(url,userName,password));
- }
- flag = true;
- } catch (SQLException e) {
- WebLogger.showWarning("初始化化資料庫連線池失敗:"+e.getCause());
- }
- return flag;
- }
- /**
- * 獲取資料庫連線池中的連結
- * @return
- */
- publicstatic Connection getConnection(){
- Connection conn = null;
- synchronized(locked){
- if(poolIndex==connPools.size()){
- initConnPools(1);
- }
- conn = connPools.get(poolIndex++);
- }
- return conn;
- }
- /**
- * 釋放連結
- * @param conn
- * @param stat
- * @param rs
- */
- publicstaticvoid closeConnection(Connection conn,Statement stat,ResultSet rs){
- if(conn!=null){
- synchronized (locked) {
- poolIndex--;//佔用的連線數量減少
- }
- }
- if(stat!=null){
- try {
- stat.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }finally{
- if(rs!=null){
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- /**
- * 查詢工具方法
- * @param <T>
- * @param <T>
-
相關推薦
簡單建立資料庫連線池幷包裝查詢程式碼
一:準備Jar包 ojdbc14.jar:oracle資料庫驅動 commons-lang-2.6.jar:工具包 二:日誌工具類 1:建立資料庫連結配置檔案db.properties(儲存在src下): [html] v
java建立資料庫連線池程式碼
資料庫連線池(Connection pooling)是程式啟動時建立足夠的資料庫連線,並將這些連線組成一個連線池,由程式動態地對池中的連線進行申請,使用,釋放。 大家可以想一下,如果專案中沒有資料庫連線池會是一個什麼樣的結果?每訪問一次資料庫
一個簡單的資料庫連線池示例
一個簡單的資料庫連線池, 即一個通過建構函式初始化連線的最大上限,並通過一個雙向佇列來維護連線,呼叫方需要先呼叫fetchConnection(long)方法來指定在多少毫秒內超時獲取連線,連線使用完成後,需要呼叫releaseConnection(Conn
建立資料庫連線池的幾種方式
方式一、在專案工程資料夾下配置DBCP建立資料庫連線池 步驟: 1、導包。將DBCP相應的四個包匯入web資料夾下的WEB-INF資料夾下自己新建的lib資料夾裡,然後add as libriays。
資料庫連線池詳解與程式碼實現
一、資料庫連線池概念 資料庫連線池:負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的資料庫連線來避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效
JDBC資料庫連線池連線資料庫及資料庫操作DAO層設計通用更新及查詢方法(二)
上篇文章主要介紹了通過資料庫連線池連線資料庫,然後設計了對資料庫通用更新和查詢方法,本篇文章主要通過例項介紹上篇文章定義的對資料庫操作的幾個方法的使用: 首先我們先在資料庫建立一個學生資訊表Student欄位如圖: 建立好表將配置檔案的資訊改好然後需要建立一
JDBC資料庫連線池連線資料庫及資料庫操作DAO層設計通用更新及查詢方法(一)
該篇文章介紹了資料庫連線池獲取資料庫連線以及資料庫操作的基本使用,然後主要提供了java專案案例中dao層的一種設計,利用反射的原理定義了通用的查詢方法可以對應所有的表和例項。文章中的每段程式碼都提供了詳細的註釋及邏輯步驟 首先匯入資料庫連線的所需要的jar包:
[課本10.1.4]JDBC資料庫連線池- C3P0資料來源--通過構造方法建立資料來源物件--通過配置檔案建立資料來源物件[推薦]
JDBC- C3P0資料來源 1 /*重點提醒*/ 2 連線資料庫的較低的jar包版本會與較高版本的mysql版本有衝突; 3 通過把mysql 8.0的版本降到5.5, jar包仍使用較高的 mysql-connector-java-5.1.7-bin.jar, 完美解決衝突.  
一個簡單資料庫連線池的實現
一、已實現功能 資料庫連線快取。將資料庫連線與執行緒ID繫結並提供執行資料庫操作時檢測。資料庫連線超時檢測。初始化資料庫環境,包括初始化資料庫,資料庫使用者,資料庫表。 二、程式碼列表: 1、MySqlDBManager: 用於管理資料庫配置、初始化資料庫環境及建立
關於資料庫連線池的簡單理解
資料庫連線池更多的是一個本地的概念。以前一直覺得,資料庫連線池是資料庫伺服器上的一個概念,在資料庫伺服器上有一個池,裡邊存放著很多的執行緒的資料庫連線。 最近在分析的時候,發現這是不正確的,或者說,這樣理解是不全面的。其實,連線池更多是一個執行C#程式碼的那個本地機器上的
java執行緒(超時等待+簡單資料庫連線池)
超時等待模式在一般的等待/通知機制上新增超時控制,使得方法執行時間過長也不會一直造成阻塞,而是在一段時間後返回。 通常java連線資料庫時會將其執行過程交由一個執行緒進行處理,使得在一些I/O操作或需要一定時間執行的行為在後臺執行而客戶端能立刻對當前的動作做出下一個反應。
Druid資料庫連線池和Druid內建監控系統簡單介紹
Druid簡介 Druid是阿里巴巴的一個開源資料庫連線池,基於Apache 2.0協議,可以免費自由使用。但它不僅僅是一個數據庫連線池,它還包含一個ProxyDriver,一系列內建的JDBC元件庫,一個SQL Parser。Druid能夠提供強大的監控和擴充套件功能。但D
資料庫連線池的簡單實現
> 資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的資料庫連線來避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效能。 一
孤傲蒼狼 只為成功找方法,不為失敗找藉口! javaweb學習總結(三十九)——資料庫連線池 一、應用程式直接獲取資料庫連線的缺點 使用者每次請求都需要向資料庫獲得連結,而資料庫建立連線通常需要
一、應用程式直接獲取資料庫連線的缺點 使用者每次請求都需要向資料庫獲得連結,而資料庫建立連線通常需要消耗相對較大的資源,建立時間也較長。假設網站一天10萬訪問量,資料庫伺服器就需要建立10萬次連線,極大的浪費資料庫的資源,並且極易造成資料庫伺服器記憶體溢位、拓機。如下圖所示: 二、使用資料
資料庫連線池 —— Druid的簡單使用
Druid不僅是一個數據庫連線池,還包含一個ProxyDriver、一系列內建的JDBC元件庫、一個SQL Parser。支援所有JDBC相容的資料庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。 使用步驟 一定要匯入jar架包。要配置好檔案,如
Java資料庫連線池細節探討
我們知道,資料庫連線池可以把資料庫的連線快取起來,下次使用的話可以直接取到快取起來的資料庫連線。那麼,在這個過程中有幾個細節需要注意: 1、資料庫的連線數有沒有限制? 2、資料庫會不會自動斷開已經建立的連線? 3、如果資料庫重啟了,但應用沒有重啟,那麼資料庫連線池中的所有連線都不可用了,
JavaWeb_day10_資料庫連線池_c3p0_DBUtils
1.在實際開發中,“獲取連線”和“釋放資源”是很消耗系統資源的兩個過程,為了解決此問題,採用連線池技術,共享連線connection 2.連線池概念 3.Java的資料庫連線池的公共介面:javax.sql.DataSource 常見的連線池:DBCP C3
手寫資料庫連線池附gp連線jar包地址
手寫資料庫連線並,測試. 最近資料庫要連線GP資料庫(GreenplumSQL),在建立連線的時候需要做建立不同的連線數量. 其實當想到寫資料庫連線時,完全可以通過springdata jpa直接寫介面,這是一種思路. 所以在使用的使用,就寫了個dem
springboot配置預設資料庫連線池並解決初始連線未生效問題
目前Spring Boot中預設支援的連線池有dbcp,dbcp2, tomcat, hikari三種連線池。 在springboot1.5之前預設tomcat連線池, 版本org.springframework.boot.autoconfigure.jdbc.Data
JFinal配置資料庫連線池外掛和表類對映
配置資料庫連線池外掛,此處以Druid為例,還需要配置資料庫訪問外掛,即ActiveRecord外掛,用於建立資料庫中Table和Java Bean的mapping對映: public void configPlugin(Plugins me) { // 配置 druid