1. 程式人生 > >java資料庫連線池程式碼實現

java資料庫連線池程式碼實現

import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;



public class JdbcUtilDBCP {
	
	private static DataSource datasource = null;
	static{
		try{
		//讀取資原始檔中的資訊
		InputStream in = JdbcUtilDBCP.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
		Properties config = new Properties();
		config.load(in);
		BasicDataSourceFactory factory = new BasicDataSourceFactory();
		datasource = factory.createDataSource(config);
		}catch (Exception e) {
			throw new ExceptionInInitializerError(e);
		}
	}
	public static Connection getConnection() throws SQLException{
		return datasource.getConnection();
	}
	
	public static void release(Connection conn, Statement st, ResultSet rs){
		if (rs != null){
			try{
				rs.close();
			}catch (Exception e) {
				e.printStackTrace();
			}
			rs = null;
		}
		if (st != null){
			try{
				st.close();
			}catch (Exception e) {
				e.printStackTrace();
			}
			st = null;
		}
		if (conn != null){
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
	}
	
}
#連線設定
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test1
username=root
password=123456
#
initialSize=10
#最大連線數量
maxActive=50
#
maxIdle=20
#
minIdle=5
#
maxWait=60000
#JDBC驅動建立連線時附帶的連線屬性屬性的格式必須為這樣:[屬性名=property;] 
#注意:"user" 與 "password" 兩個屬性會被明確地傳遞,因此這裡不需要包含他們。
connectionProperties=useUnicode=true;characterEncoding=utf8
#指定由連線池所建立的連線的自動提交(auto-commit)狀態。
defaultAutoCommit=true
#driver default 指定由連線池所建立的連線的只讀(read-only)狀態。
#如果沒有設定該值,則“setReadOnly”方法將不被呼叫。(某些驅動並不支援只讀模式,如:Informix)
defaultReadOnly=
#driver default 指定由連線池所建立的連線的事務級別(TransactionIsolation)。
#可用值為下列之一:(詳情可見javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_COMMITTED

相關推薦

java資料庫連線程式碼實現

import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.uti

【Elasticsearch】Java Client連線程式碼實現

用過Elasticsearch API的都知道,在Java端使用是ES服務需要建立Java Client,但是每一次連線都例項化一個client,對系統的消耗很大,而且最令人頭疼的是它的連線非常慢。所以為了解決上述問題並提高client利用率,用池化技術複用client,第一次用去建立cli

Java資料庫連線實現(不用框架)

前言:因為需要正式做專案,瞭解到了連線池這個東西。在網上找了很多資料,發現都是大同小異,各種轉載,看上去搜出來了幾十個答案,結果很可能是同一個。並且大多都是基於框架的資料庫連線池。可是我只是想採用MVC做一個不是很大的專案,不需要使用到框架啊。這可怎麼辦,最後沒

經典的java自定義資料庫連線程式碼

import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import j

Java資料庫連線原理與簡易實現

1、什麼是資料庫連線池     我們現在在開發中一定都會用到資料庫,為了提高我們的系統的訪問速度,資料庫優化是一個有效的途徑。我們現在開發中使用資料庫一般都要經歷以下的四個步驟:(1)載入資料庫的驅動類,(2)建立資料庫連線,(3)進行資料操作,(4)關閉資料庫連線;在這四步中建立資料庫連線是一個比較耗時的操

java建立資料庫連線程式碼

       資料庫連線池(Connection pooling)是程式啟動時建立足夠的資料庫連線,並將這些連線組成一個連線池,由程式動態地對池中的連線進行申請,使用,釋放。        大家可以想一下,如果專案中沒有資料庫連線池會是一個什麼樣的結果?每訪問一次資料庫

java資料庫連線實現原理

原文:http://blog.csdn.net/frightingforambition/article/details/25464129  一、為什麼在連線資料庫時要使用連線池  資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得

Java資料庫連線細節探討

我們知道,資料庫連線池可以把資料庫的連線快取起來,下次使用的話可以直接取到快取起來的資料庫連線。那麼,在這個過程中有幾個細節需要注意: 1、資料庫的連線數有沒有限制? 2、資料庫會不會自動斷開已經建立的連線? 3、如果資料庫重啟了,但應用沒有重啟,那麼資料庫連線池中的所有連線都不可用了,

Hive使用druid做連線程式碼實現

配置文件 hive_jdbc_url=jdbc:hive2://192.168.0.22:10000/default hive.dbname=xxxxx hive_jdbc_username=root hive_jdbc_password=123456 #配置初始化大小、最小、最大 hiv

HikariCP 的Java資料庫連線介紹及配置

HiKariCP是資料庫連線池的一個後起之秀,號稱效能最好,可以完美地PK掉其他連線池。 原文地址:http://blog.csdn.net/clementad/article/details/46928621 官網:https://github.com/brettwooldridge/Hi

Java資料庫連線

1.簡介 Java 獲取資料庫的基本方式有兩種:1,通過DriverManager;2,通過DataSource,這裡主要講述第二種。 1.1 DriverManager跟DataSource獲取getConnection 的區別 DriverManag

主流Java資料庫連線比較與開發配置實戰

1.資料庫連線池概述 資料庫連線的建立是一種耗時、效能低、代價高的操作,頻繁的資料庫連線的建立和關閉極大的影響了系統的效能。資料庫連線池是系統初始化過程中建立一定數量的資料庫連線放於連線池中,當程式需要訪問資料庫時,不再建立一個新的連線,而是從連線池中取出一個已建立的空

redis分散式連線程式碼實現

redis分散式演算法原理: 本例中我們打開了兩個redis服務,一個6379埠,一個6380埠,那麼我們儲存資料的時候是怎麼分配的了,object1經過hsah到了他的位置上,存放到cacheA節點上,其它如object2,object3,object4也到了各自的位置,每個如cacheA的節點其實就

一個簡單資料庫連線實現

一、已實現功能   資料庫連線快取。將資料庫連線與執行緒ID繫結並提供執行資料庫操作時檢測。資料庫連線超時檢測。初始化資料庫環境,包括初始化資料庫,資料庫使用者,資料庫表。 二、程式碼列表: 1、MySqlDBManager:   用於管理資料庫配置、初始化資料庫環境及建立

為什麼HikariCP被號稱為效能最好的Java資料庫連線,如何配置使用

HiKariCP是資料庫連線池的一個後起之秀,號稱效能最好,可以完美地PK掉其他連線池。 什麼?不是有C3P0/DBCP這些成熟的資料庫連線池嗎?一直用的好好的,為什麼又搞出一個BoneCP來?因為,傳說中BoneCP在快速這個特點上做到了極致,官方資料是C3P0等

Oracle資料庫連線實現

資料連線池的工做機制:J2EE伺服器啟動時會建立一定數量的池連線,並一直維持不少此數目的池連線。客戶端程式需要連線時,池驅動程式會返回一個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線

Java資料庫連線比較(c3p0,dbcp,proxool和BoneCP)

詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架資料庫連線池比較(c3p0,dbcp和proxool,BoneC) 現在常用的開源資料連線池主要有c3p0,dbcp,proxool

QT資料庫連線實現

mysql.h檔案 #ifndef MYSQL #define MYSQL #include <QtSql> #include <QQueue> #include <QString> #include <QMutex> #i

Java資料庫連線比較及使用場景

我們在連線資料庫的時候,由於建立資料庫連線代價很大(銷燬連線的代價也很大),需要消耗很多資源,因此引入資料庫連線池。資料庫連線池是一種池化技術,預先建立好資料庫連線,儲存在記憶體中,當需要連線時,從中取出即可,使用完後放回連線池。 下面我們介紹Java中常用的

Java資料庫連線幾種方式及其特點

主流的資料庫連線池  在目前技術前沿比較流行的資料庫連線池有:DBCP、Tomcat Jdbc Pool、BoneCP、Druid、C3P0等 DBCP:由Apache開發的一個Java資料庫連線池專案, Jakarta commons-pool物件池機制,Tomcat使