数据库连接池-创新互联

连接池是管理数据库连接的一种机制,能够控制连接的个数,默认情况下可以预先创建可用的连接。

创新互联公司主要业务有网站营销策划、成都做网站、成都网站设计、微信公众号开发、微信小程序、H5响应式网站、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都全网营销资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

有四种常见的连接池框架

1、Apache的DBCP连接池(Tomcat内置了DBCP)

2、C3P0连接池

3、proxcool连接池

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

一、引入Maven(只记录了DBCP和C3P0的使用)

    mysql

    mysql-connector-java

    8.0.16

    com.mchange

    c3p0

    0.9.5.4

    org.apache.commons

    commons-dbcp2

    2.6.0

二、创建连接池,DataSource有提供getConnection接口。这里采用工厂模式获取数据库连接池的连接。

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); //设置初始的连接个数

bds.setMaxTotal(2); //设置大连接数

bds.setMaxIdle(2);

bds.setMaxWaitMillis(2000); //设置等待时间

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); //设置最小的连接个数

cpds.setAcquireIncrement(1);//每次新增的连接个数

cpds.setMaxPoolSize(10);//设置大的连接个数

} 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的机制,如果太久没使用一个引用,就会自动清除,不能避免地有时候会重复地进行销毁、创建的动作。所以将连接池配置放在JNDI上,让它在服务器启动时就一直存在。

在tomcat的context.xml里配置数据库信息。

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

郑州不孕不育医院: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(数据库驱动)、url(数据库地址)、username(数据库用户名)、password(数据库驱动)、name(Resource的名字)、maxIdle(大空闲数)、maxActive(大活动数)、auth(连接池的管理者,Container表示交给Tomcat管理)、maxWait(大等待时间ms)、type(DataSource类)。

注:如果使用JNDI方式,必须将项目发布到Web才能生效。

工厂模式创建连接,用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();

}

}

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:数据库连接池-创新互联
文章转载:http://hbruida.cn/article/dpcejj.html