連接池是管理數(shù)據(jù)庫連接的一種機(jī)制,能夠控制連接的個數(shù),默認(rèn)情況下可以預(yù)先創(chuàng)建可用的連接。
創(chuàng)新互聯(lián)公司主要業(yè)務(wù)有網(wǎng)站營銷策劃、成都做網(wǎng)站、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、微信小程序、H5響應(yīng)式網(wǎng)站、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過程中,公司還積累了豐富的行業(yè)經(jīng)驗、成都全網(wǎng)營銷資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。有四種常見的連接池框架
1、Apache的DBCP連接池(Tomcat內(nèi)置了DBCP)
2、C3P0連接池
3、proxcool連接池
4、阿里公司的德魯伊框架。
一、引入Maven(只記錄了DBCP和C3P0的使用)
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
二、創(chuàng)建連接池,DataSource有提供getConnection接口。這里采用工廠模式獲取數(shù)據(jù)庫連接池的連接。
package com.neusoft.busmis.fatory;
import java.sql.Connection;
import javax.sql.DataSource;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
//DBCP連接池
public class ConnectionFactoryWithDBCP {
private static DataSource ds = null;
static {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8");
bds.setUsername("root");
bds.setPassword("123456");
bds.setInitialSize(1); //設(shè)置初始的連接個數(shù)
bds.setMaxTotal(2); //設(shè)置大連接數(shù)
bds.setMaxIdle(2);
bds.setMaxWaitMillis(2000); //設(shè)置等待時間
ds = bds;
}
public static Connection getConnection() throws Exception{
return ds.getConnection();
}
}
package com.neusoft.busmis.fatory;
import java.sql.Connection;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class ConnectionFactoryWithC3P0 {
private static DataSource ds = null;
static {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8");
cpds.setUser("root");
cpds.setPassword("123456");
cpds.setMinPoolSize(1); //設(shè)置最小的連接個數(shù)
cpds.setAcquireIncrement(1);//每次新增的連接個數(shù)
cpds.setMaxPoolSize(10);//設(shè)置大的連接個數(shù)
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ds = cpds;
}
public static Connection getConnection() throws Exception{
return ds.getConnection();
}
public static DataSource getDataSource() throws Exception{
return ds;
}
}
三、將連接池放到JNDI
因為在java的機(jī)制,如果太久沒使用一個引用,就會自動清除,不能避免地有時候會重復(fù)地進(jìn)行銷毀、創(chuàng)建的動作。所以將連接池配置放在JNDI上,讓它在服務(wù)器啟動時就一直存在。
在tomcat的context.xml里配置數(shù)據(jù)庫信息。
auth="Container"?? type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory" maxActive="5" maxIdle="3" maxWait="100" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8" />?? http://www.renrendoc.com/p-21933469.html 鄭州不孕不育醫(yī)院:http://www.zzchyy110.com/ type="com.mchange.v2.c3p0.ComboPooledDataSource" factory="org.apache.naming.factory.BeanFactory" driverClass="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost:3306/busmis?serverTimezone=GMT%2B8" user="root" password="root" minPoolSize="1" maxPoolSize="4" maxIdleTime="1800" acquireIncrement="1" maxStatements="0" initialPoolSize="1" idleConnectionTestPeriod="60" acquireRetryAttempts="30" acquireRetryDelay="1000" testConnectionOnCheckin="false" breakAfterAcquireFailure="false" testConnectionOnCheckout="false"/> DBCP最主要的是drivereClassName(數(shù)據(jù)庫驅(qū)動)、url(數(shù)據(jù)庫地址)、username(數(shù)據(jù)庫用戶名)、password(數(shù)據(jù)庫驅(qū)動)、name(Resource的名字)、maxIdle(大空閑數(shù))、maxActive(大活動數(shù))、auth(連接池的管理者,Container表示交給Tomcat管理)、maxWait(大等待時間ms)、type(DataSource類)。 注:如果使用JNDI方式,必須將項目發(fā)布到Web才能生效。 工廠模式創(chuàng)建連接,用Context類的lookup來找配置信息,java:/comp/env/name。 package com.neusoft.busmis.fatory; import java.sql.Connection; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; public class ConnectionFactoryWithJNDI { private static DataSource ds = null; static { try { Context ct = new InitialContext(); ds = (DataSource)ct.lookup("java:/comp/env/mysql3306busmis-c3p0"); ct.close(); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws Exception{ return ds.getConnection(); } } 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站欄目:數(shù)據(jù)庫連接池-創(chuàng)新互聯(lián)
URL地址:http://weahome.cn/article/dpcejj.html