欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

數(shù)據(jù)庫(kù)連接池

連接池是管理數(shù)據(jù)庫(kù)連接的一種機(jī)制,能夠控制連接的個(gè)數(shù),默認(rèn)情況下可以預(yù)先創(chuàng)建可用的連接。

成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

有四種常見的連接池框架

1、Apache的DBCP連接池(Tomcat內(nèi)置了DBCP)

2、C3P0連接池

3、proxcool連接池

4、阿里公司的德魯伊框架。

一、引入Maven(只記錄了DBCP和C3P0的使用)

? ? <dependency>

? ? <groupId>MySQL</groupId>

? ? <artifactId>mysql-connector-java</artifactId>

? ? <version>8.0.16</version>

</dependency>

?

? ? <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->

<dependency>

? ? <groupId>com.mchange</groupId>

? ? <artifactId>c3p0</artifactId>

? ? <version>0.9.5.4</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->

<dependency>

? ? <groupId>org.apache.commons</groupId>

? ? <artifactId>commons-dbcp2</artifactId>

? ? <version>2.6.0</version>

</dependency>

二、創(chuàng)建連接池,DataSource有提供getConnection接口。這里采用工廠模式獲取數(shù)據(jù)庫(kù)連接池的連接。

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è)置初始的連接個(gè)數(shù)

bds.setMaxTotal(2); //設(shè)置最大連接數(shù)

bds.setMaxIdle(2);

bds.setMaxWaitMillis(2000); //設(shè)置等待時(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è)置最小的連接個(gè)數(shù)

cpds.setAcquireIncrement(1);//每次新增的連接個(gè)數(shù)

cpds.setMaxPoolSize(10);//設(shè)置最大的連接個(gè)數(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

因?yàn)樵趈ava的機(jī)制,如果太久沒使用一個(gè)引用,就會(huì)自動(dòng)清除,不能避免地有時(shí)候會(huì)重復(fù)地進(jìn)行銷毀、創(chuàng)建的動(dòng)作。所以將連接池配置放在JNDI上,讓它在服務(wù)器啟動(dòng)時(shí)就一直存在。

在tomcat的context.xml里配置數(shù)據(jù)庫(kù)信息。

<Resource? name="mysql3306busmis-dbcp"? ?

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/

<Resource name="mysql3306busmis-c3p0" auth="Container"

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ù)庫(kù)驅(qū)動(dòng))、url(數(shù)據(jù)庫(kù)地址)、username(數(shù)據(jù)庫(kù)用戶名)、password(數(shù)據(jù)庫(kù)驅(qū)動(dòng))、name(Resource的名字)、maxIdle(最大空閑數(shù))、maxActive(最大活動(dòng)數(shù))、auth(連接池的管理者,Container表示交給Tomcat管理)、maxWait(最大等待時(shí)間ms)、type(DataSource類)。

注:如果使用JNDI方式,必須將項(xiàng)目發(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();

}

}

?

名稱欄目:數(shù)據(jù)庫(kù)連接池
地址分享:http://www.chinadenli.net/article20/jdhjjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器App設(shè)計(jì)網(wǎng)站策劃定制網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管