




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Java數(shù)據(jù)庫(kù)連接池c3p0介紹詳細(xì)說明可參考官網(wǎng)文檔:/projects/c3p0/#configuration
2、原始連接操作
c3p0提供api來訪問原始連接中的非標(biāo)準(zhǔn)接口:
把連接轉(zhuǎn)成C3P0ProxyConnection
然后調(diào)用rawConnectionOperation方法
下面是獲取PostgreSQL
JDBC驅(qū)動(dòng)中CopyManager對(duì)象的方法:
Connectionconnection=(C3P0ProxyConnection)c3p0DataSource.getConnection();
C3P0ProxyConnectioncastConnection=(C3P0ProxyConnection)connection;
Methodmethod=BaseConnection.class.getMethod("getCopyAPI",newClass[]{});
CopyManagercopyManager=(CopyManager)castConnection.rawConnectionOperation(method,C3P0ProxyConnection.RAW_CONNECTION,newObject[]{});
3、使用
3.1、直接使用
3.1.1、引入依賴
dependency
groupIdcom.mchange/groupId
artifactIdc3p0/artifactId
version/version
/dependency
3.1.2、使用例子
packagecom.abc.demo.general.dbpool;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
importjava.beans.PropertyVetoException;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassC3p0Case{
publicstaticvoidmain(String[]args)throwsPropertyVetoException{
ComboPooledDataSourcecomboPooledDataSource=newComboPooledDataSource();
comboPooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql://1:3306/mydbuseUnicode=truecharacterEncoding=UTF-8");
comboPooledDataSource.setUser("root");
comboPooledDataSource.setPassword("123456");
comboPooledDataSource.setInitialPoolSize(2);
comboPooledDataSource.setMinPoolSize(2);
comboPooledDataSource.setMaxPoolSize(10);
comboPooledDataSource.setPreferredTestQuery("select1");
comboPooledDataSource.setIdleConnectionTestPeriod(60);
comboPooledDataSource.setTestConnectionOnCheckout(true);
comboPooledDataSource.setCheckoutTimeout(1000*30);
Connectionconnection=null;
Statementst=null;
ResultSetrs=null;
try{
connection=comboPooledDataSource.getConnection();
st=connection.createStatement();
rs=st.executeQuery("selectversion()");
if(rs.next()){
System.out.println(rs.getString(1));
}catch(SQLExceptione){
e.printStackTrace();
}finally{
close(connection);
//實(shí)際使用中一般是在應(yīng)用啟動(dòng)時(shí)初始化數(shù)據(jù)源,應(yīng)用從數(shù)據(jù)源中獲取連接;并不會(huì)關(guān)閉數(shù)據(jù)源。
comboPooledDataSource.close();
privatestaticvoidclose(Connectionconnection){
if(connection!=null){
try{
connection.close();
}catch(SQLExceptione){
e.printStackTrace();
}
3.2、在SpringBoot中使用
3.1.1、引入依賴
parent
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-parent/artifactId
version2.3.12.RELEASE/version
relativePath/
/parent
dependencies
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-web/artifactId
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-jdbc/artifactId
/dependency
dependency
groupIdcom.mchange/groupId
artifactIdc3p0/artifactId
version/version
/dependency
dependency
groupIdmysql/groupId
artifactIdmysql-connector-java/artifactId
/dependency
/dependencies
3.1.2、單數(shù)據(jù)源
application.yml配置:
spring:
datasource:
c3p0:
driver-class:com.mysql.cj.jdbc.Driver
jdbc-url:jdbc:mysql://1:3306/myDbuseUnicode=truecharacterEncoding=UTF-8
user:root
password:123456
initial-pool-size:2
min-pool-size:2
max-pool-size:10
preferred-test-query:select1
idle-connection-test-period:60
test-connection-on-checkout:true
checkout-timeout:30000
數(shù)據(jù)源配置類:
packagecom.abc.demo.config;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
importperties.ConfigurationProperties;
importorg.springframework.boot.jdbc.DataSourceBuilder;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importjavax.sql.DataSource;
@Configuration
publicclassDataSourceConfig{
@Bean("dataSource")
@ConfigurationProperties(prefix="spring.datasource.c3p0")
publicDataSourcedataSource1(){
returnDataSourceBuilder.create().type(ComboPooledDataSource.class).build();
}
使用:
@Autowired
privateDataSourcedataSource;
3.1.3、多數(shù)據(jù)源
application.yml配置:
spring:
datasource:
c3p0:
db1:
driver-class:com.mysql.cj.jdbc.Driver
jdbc-url:jdbc:mysql://1:3306/myDbuseUnicode=truecharacterEncoding=UTF-8
user:root
password:InsYR0ot187!
initial-pool-size:2
min-pool-size:2
max-pool-size:10
preferred-test-query:select1
idle-connection-test-period:60
test-connection-on-checkout:true
checkout-timeout:30000
db2:
driver-class:com.mysql.cj.jdbc.Driver
jdbc-url:jdbc:mysql://2:3306/myDbuseUnicode=truecharacterEncoding=UTF-8
user:root
password:InsYR0ot187!
initial-pool-size:2
min-pool-size:2
max-pool-size:10
preferred-test-query:select1
idle-connection-test-period:60
test-connection-on-checkout:true
checkout-timeout:30000
數(shù)據(jù)源配置類:
packagecom.abc.demo.config;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
importperties.ConfigurationProperties;
importorg.springframework.boot.jdbc.DataSourceBuilder;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importjavax.sql.DataSource;
@Configuration
publicclassDataSourceConfig{
@Bean("dataSource1")
@ConfigurationProperties(prefix="spring.datasource.c3p0.db1")
publicDataSourcedataSource1(){
returnDataSourceBuilder.create().type(ComboPooledDataSource.class).bui
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電鏟初級(jí)工練習(xí)題(附參考答案)
- 2025員工拒絕簽訂勞動(dòng)合同企業(yè)應(yīng)對(duì)策略全解析
- 商業(yè)信息咨詢和輔導(dǎo)服務(wù)協(xié)議規(guī)定事項(xiàng)
- 智能硬件產(chǎn)品設(shè)計(jì)與制造合同協(xié)議
- 知識(shí)產(chǎn)權(quán)轉(zhuǎn)讓合同協(xié)議書要求專業(yè)版
- 設(shè)備采購(gòu)合同協(xié)議條款
- 經(jīng)濟(jì)師專業(yè)試題及答案
- 2025湖南省低空經(jīng)濟(jì)發(fā)展集團(tuán)有限公司招聘12人(第二次)筆試參考題庫(kù)附帶答案詳解
- 2025江西南昌市信陽鼎信產(chǎn)業(yè)投資集團(tuán)有限公司及所屬二級(jí)公司招聘24人筆試參考題庫(kù)附帶答案詳解
- 2025廣西旅發(fā)大健康產(chǎn)業(yè)集團(tuán)有限公司招聘278人筆試參考題庫(kù)附帶答案詳解
- 中小學(xué)學(xué)生規(guī)范漢字書寫比賽硬筆格式
- 跳繩市場(chǎng)調(diào)研報(bào)告
- 《大學(xué)生的情緒》課件
- 鐵道概論(第八版)佟立本主編
- 全國(guó)各省市名稱大全
- 202305青少年軟件編程(圖形化)等級(jí)考試試卷四級(jí)(含答案)
- 光儲(chǔ)充車棚技術(shù)方案設(shè)計(jì)方案
- 土壤重金屬源調(diào)查分析投標(biāo)方案
- 植筋錨固深度表
- 幼兒園家長(zhǎng)會(huì)會(huì)議記錄三篇
- 《心房顫動(dòng)診斷和治療中國(guó)指南2023》解讀
評(píng)論
0/150
提交評(píng)論