程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 使用dbcp配置數據源

使用dbcp配置數據源

編輯:SyBase教程

使用dbcp配置數據源


1.配置dbcp數據源需要兩個jar包,commons-dbcp-x.x.x.jar和commons-pool.x.x.x.jar,版本的差別不是很大,當然也需要數據庫驅動
2.可以使用配置文件,也可以手動直接在程序中直接配置,(建議使用配置文件比較方便些)
在程序中直接手動配置:
package com.silence.database;

import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
import org.junit.Test;

public class Test1 {
@Test
public void testDBCP() throws SQLException{
//創建數據庫連接池
final BasicDataSource dataSource = new BasicDataSource();
//指定數據庫用戶名
dataSource.setUsername("root");
//指定數據庫密碼
dataSource.setPassword("root");
//指定數據庫的URL
dataSource.setUrl("jdbc:mysql://localhost:3306");
//指定數據庫的驅動名稱
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//指定數據庫連接池中初始化連接數的個數
dataSource.setInitialSize(5);
// 指定最大的連接數: 同一時刻可以同時向數據庫申請的連接數
dataSource.setMaxActive(5);
//指定小連接數: 在數據庫連接池中保存的最少的空閒連接的數量
dataSource.setMinIdle(2);
//等待數據庫連接池分配連接的最長時間. 單位為毫秒. 超出該時間將拋出異常.
dataSource.setMaxWait(1000 * 5);
//從數據源中獲取數據庫連接
Connection connection = dataSource.getConnection();
System.out.println(connection);
System.out.println(connection.getClass());
}
}
輸出如下:
jdbc:mysql://localhost:3306, UserName=root@localhost, MySQL-AB JDBC Driver
class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
2.使用配置文件創建連接池
dbcpconfig.properties文件的內容如下:(該文件是從網絡中找到的一份比較完整的配置文件)
#連接設置
url=jdbc:mysql://localhost:3306/test
driverClassName=com.mysql.jdbc.Driver
username=root
password=root
#初始化連接的大小
initialSize=10
##連接池的最大數據庫連接數。設為0表示無限制
maxActive=100
#連接池的最大空閒連接
maxIdle=50
#連接池的最小空閒連接
minIdle=5
#超時等待時間以毫秒為單位 6000毫秒/1000等於60秒
maxWait=80000
#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
#oracle只支持READ_COMMITTED(默認),SERIALIZABLE 住程序如下:

package com.silence.database;

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

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class Test {
private static DataSource ds;
static{
try {
//從src目錄下讀取配置文件
InputStream in = Test.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
Properties props = new Properties();
//使用properties來讀取配置
props.load(in);
//獲取數據源
ds = BasicDataSourceFactory.createDataSource(props);
Connection conn = ds.getConnection();
System.out.println(conn);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
return ds.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
Connection conn = getConnection();
System.out.println(conn);
System.out.println(conn.getClass());
}
} }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved