DBCP資料來源使用,dbcp資料來源

來源:互聯網
上載者:User

DBCP資料來源使用,dbcp資料來源
DBCP:DataBase Connection Pool
1、需要的jar:commons-dbcp.jar  commons-pool.jar

2、把DBCP的設定檔(dbcpconfig.properties)拷貝到構建路徑中

3、建立類:DBCPUtil

dbcpconfig.properties:

mysql設定內容如下:

#串連設定driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/day16username=rootpassword=liang#<!-- 初始化串連 -->initialSize=10#最大串連數量maxActive=50#<!-- 最大空閑串連 -->maxIdle=20#<!-- 最小空閑串連 -->minIdle=5#<!-- 逾時等待時間以毫秒為單位 6000毫秒/1000等於60秒 -->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#oracle只支援READ_COMMITTED(預設),SERIALIZABLEdefaultTransactionIsolation=REPEATABLE_READ


DBCPUtil:

package cn.itcast.util;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 DBCPUtil {private static DataSource ds;static{try {InputStream in = DBCPUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");Properties props = new Properties();props.load(in);ds = BasicDataSourceFactory.createDataSource(props);} catch (Exception e) {e.printStackTrace();}}public static Connection getConnection(){try {return ds.getConnection();} catch (SQLException e) {throw new RuntimeException(e);}}public static void release(ResultSet rs,Statement stmt,Connection conn){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs = null;}if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}stmt = null;}if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}}}





dbcp怎用

一個串連池,簡單地,可以這樣
import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.HashMap;import java.util.Map;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;/*** @date Aug 12, 2008 3:25:49 PM** dbcp 實用類,提供了dbcp串連,不允許繼承;** 該類需要有個地方來初始化 DS ,通過調用initDS 方法來完成,可以在通過調用帶參數的建構函式完成調用,*/public final class DbcpBean { /** 資料來源 */ private DataSource Ds; /** 從資料來源獲得一個串連 */ public Connection getConn() { Connection con = null; if (Ds!= null) { try { con = Ds.getConnection(); } catch (Exception e) { e.printStackTrace(System.err); } try { con.setAutoCommit(false); } catch (SQLException e) { e.printStackTrace(); } return con; } return con; } /** 預設的建構函式 */ public DbcpBean() { } /** 建構函式,初始化了 DS ,指定 資料庫 */ public DbcpBean(String connectURI) { initDS(connectURI); } /** 建構函式,初始化了 DS ,指定 所有參數 */ public DbcpBean(String connectURI, String username, String pswd, String driverClass, int initialSize, int maxActive, int maxIdle, int maxWait) { initDS(connectURI, username, pswd, driverClass, initialSize, maxActive, maxIdle, maxWait); } /** * 建立資料來源,除了資料庫外,都使用寫入程式碼預設參數; * * @param connectURI 資料庫 * @return */ public void initDS(Str......餘下全文>>
 
jdbc中怎使用dbcp

直接使用的情況,真不多。

一般是和架構配合使用,這樣配置一下就完成了。

直接使用

public final class JdbcUtils {

private static DataSource myDataSource = null;

private JdbcUtils() {
}

static {
try {
Class.forName("com.mysql.jdbc.Driver");
// myDataSource = new MyDataSource2();
Properties prop = new Properties();
// prop.setProperty("driverClassName", "com.mysql.jdbc.Driver");
// prop.setProperty("user", "user");
InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
prop.load(is);
myDataSource = BasicDataSourceFactory.createDataSource(prop);//建立資料來源,一句代碼就完成
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}

public static DataSource getDataSource() {
return myDataSource;
}

public static Connection getConnection() throws SQLException {
// return DriverManager.getConnection(url, user, password);
return myDataSource.getConnection();
}

public static void free(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null)
st.close();
} catch (SQLExcept......餘下全文>>
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.