碼上快樂
1秒登錄
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
C3P0配置與使用
本文轉載自
查看原文
2012-02-19 16:15
5204
Java Web
一、C3P0配置
1、使用xml方式(名稱為c3p0-config.xml)
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/tv_guide </property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="checkoutTimeout">30000</property> <property name="idleConnectionTestPeriod">30</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> </c3p0-config>
2、使用properties方式(名稱為c3p0.properties)
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/tv_guide c3p0.driverClass=com.mysql.jdbc.Driver c3p0.user=root c3p0.password=root c3p0.acquireIncrement=3 c3p0.idleConnectionTestPeriod=60 c3p0.initialPoolSize=10 c3p0.maxIdleTime=60 c3p0.maxPoolSize=20 c3p0.maxStatements=100 c3p0.minPoolSize=5
使用這兩種方式進行配置時,只要將配置好的文件放入classpath文件夾下即可,在java代碼當中不用顯示的給出訪問配置方式的代碼,c3p0會自動識別!
二、C3P0的使用
import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Utils { private static DataSource ds; private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>(); // map static { ds = new ComboPooledDataSource();//直接使用即可,不用顯示的配置,其會自動識別配置文件 } public static DataSource getDataSource() { return ds; } public static Connection getConnection() throws SQLException { try { // 得到當前線程上綁定的連接 Connection conn = tl.get(); if (conn == null) { // 代表線程上沒有綁定連接 conn = ds.getConnection(); tl.set(conn); } return conn; } catch (Exception e) { throw new RuntimeException(e); } } public static void startTransaction() { try { // 得到當前線程上綁定連接開啟事務 Connection conn = tl.get(); if (conn == null) { // 代表線程上沒有綁定連接 conn = ds.getConnection(); tl.set(conn); } conn.setAutoCommit(false); } catch (Exception e) { throw new RuntimeException(e); } } public static void commitTransaction() { try { Connection conn = tl.get(); if (conn != null) { conn.commit(); } } catch (Exception e) { throw new RuntimeException(e); } } public static void closeConnection() { try { Connection conn = tl.get(); if (conn != null) { conn.close(); } } catch (Exception e) { throw new RuntimeException(e); } finally { tl.remove(); // 千萬注意,解除當前線程上綁定的鏈接(從threadlocal容器中移除對應當前線程的鏈接) } } }
詳細信息見:
http://www.mchange.com/projects/c3p0/
c3p0官方網站
×
免責聲明!
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。
猜您在找
C3P0使用詳解
C3P0的詳細配置說明
c3p0優化詳細配置
使用c3p0 對事務的處理
【c3p0】 C3P0的三種配置方式以及基本配置項詳解
Spring里面c3p0連接池的配置和使用
Spring之c3p0連接池xml配置和使用舉例
C3P0在多線程下的maxPoolSize配置
C3p0連接池配置
C3P0連接池參數配置說明
粵ICP備18138465號
© 2018-2025 CODEPRJ.COM