MySql数据库连接池如何配置

MySql数据库连接池如何配置,第1张

连接先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。Mysql数据库为例,连接池在Tomcat中的配置与使用。

1、创建数据库Student,表student

2、配置serverxml文件。Tomcat安装目录下conf中serverxml文件。

<GlobalNamingResources>

<Resource

name="jdbc/DBPool"

type="javaxsqlDataSource"

password=""

driverClassName="commysqljdbcDriver"

maxIdle="2"

maxWait="5000"

username="root"

url="jdbc:mysql://localhost:3306/student"

maxActive="3"

/>

</GlobalNamingResources>

name:指定连接池的名称

type:指定连接池的类,他负责连接池的事务处理

url:指定要连接的数据库

driverClassName:指定连接数据库使用的驱动程序

username:数据库用户名

password:数据库密码

maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常

maxIdle:指定连接池中连接的最大空闲数

maxActive:指定连接池最大连接数

3、配置webxml文件。

<web-app>

<resource-ref>

<description>mysql数据库连接池配置</description>

<res-ref-name>jdbc/DBPool</res-ref-name>

<res-type>javaxsqlDataSource</res-type>

<res-auth>Container</res-auth>

<res-sharing-scope>Shareable</res-sharing-scope>

</resource-ref>

</web-app>

4、配置contextxml文件

与serverxml文件所在的位置相同。

<Context>

<ResourceLink

name="jdbc/DBPool"

type="javaxsqlDataSource"

global="jdbc/DBPool"

/>

</Context>

5、测试

DataSource pool = null;

Context env = null;

Connection conn = null;

Statement st = null;

ResultSet rs = null;

try{

env = (Context)new InitialContext()lookup("java:comp/env");

//检索指定的对象,返回此上下文的一个新实例

pool = (DataSource)envlookup("jdbc/DBPool");

//获得数据库连接池

if(pool==null){outprintl("找不到指定的连接池!");}

con = poolgetConnection();

st = concreateStatement();

rs = stexecuteQuery("select from student");

}catch(Exception ex){outprintl(netoString());}

用tomcat的数据库连接池,修改tomcat配置文件serverxml,在context标签中加上

<Context path="" docBase="ROOT" debug="0">

<Resource name="jdbc/OracleDB" auth="Container" type="javaxsqlDataSource"/>

<ResourceParams name="jdbc/OracleDB">

<parameter>

<name>factory</name>

<value>orgapachecommonsdbcpBasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>oraclejdbcdriverOracleDriver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:oracle:thin:@101161:1521:dbname</value>

</parameter>

<parameter>

<name>username</name>

<value>yourname</value>

</parameter>

<parameter>

<name>password</name>

<value>yourpasswd</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>1000</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>20</value> </parameter>

<parameter>

<name>maxWait</name>

<value>-1</value>

</parameter>

</ResourceParams>

</Context>

maxActive 是最大激活连接数,这里取值为1000,表示同时最多有1000个数据库连接。maxIdle是最大的空闲连接数,这里取值为20,表示即使没有数据库连 接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值 9000,表示9秒后超时。

到MySQL的网站上去下载MySQL的JDBC连接驱动mysql-connector-java-3111-binjar,放到Tomcat的\common\lib目录下。

Tomcat的JDBC下载地址:>

方法有两种

与服务器类型是无关的,主要是jar包的放入有关

第一种(C3P0的配置方法为例)

第一步:加载数据驱动包。(C3P0还要导入C3P0连接池使用的Jar:c3p0-090jar)

Tomcate 55 将数据库驱动包拷贝到tomcathome/common/lib目录下。

Tomcate 60 将数据库驱动包拷贝到tomcathome/lib目录下。

地二步:配置tomcat中servicexml:

<!--在tomcat中配置连接池属性说明

docBase web工程的文件路径

path web工程url的根目录

reloadable 当tomcat重启时候,是否重新加载配置文件

name 数据源的JNDI名

type 资源的类型,此处是数据源

driverClass数据库驱动类,根据不同的数据库 驱动类不同(我用的是MS SQL SERVICE2005)

jdbcUrl 连接字符串

factory 连接工厂类-->

<Context docBase="DataSrc61" path="/DataSrc61" reloadable="true">

<Resource name="jdbc/ds" auth="Container" type="commchangev2c3p0ComboPooledDataSource"

maxPoolSize="200" minPoolSize="1" initialPoolSize="100" acquireIncrement="2"

idleConnectionTestPeriod="60" maxIdleTime="60"

driverClass="commicrosoftsqlserverjdbcSQLServerDriver"

user="sa" password=""

jdbcUrl="jdbc:sqlserver://localhost:1433;DatabaseName=pubs"

factory="orgapachenamingfactoryBeanFactory"/>

</Context>

第三步:配置工程中的webxml文件

<!– 声名工程所需资源-->

<resource-ref>

<!– JDNI资源名 -->

<res-ref-name>jdbc/ds</res-ref-name>

<!– 资源类型 -->

<res-type>commchangev2c3p0ComboPooledDataSource</res-type>

<!– 资源范围 -->

<res-auth>Container</res-auth>

</resource-ref>

第四步:写连接类

import javaxnamingContext;

import javaxnamingInitialContext;

import javaxsqlDataSource;

import javasqlConnection;

public class JndiDao {

public static Connection getConnectionPool3()throws Exception

{

Connection con=null;

Context conx=new InitialContext();

DataSource ds=(DataSource)conxlookup("java:comp/env/jdbc/ds");

con=dsgetConnection();

return con;

}

}

第二种:(DBCP为例)

第一步:

导入DBCP连接池用到的Jar:naming-factory-dbcpjar(JVM使用)

(commons-dbcp-122jar为tomcat中默认有的DBCP连接池的包,而C3P0的话就要在tomcat中导入C3P0连接池使用的Jar:c3p0-090jar)

和数据库驱动包

第二步:

import orgapachetomcatdbcpdbcpBasicDataSource;//数据源

import orgapachetomcatdbcpdbcpConnectionFactory;

import orgapachetomcatdbcpdbcpDataSourceConnectionFactory;

import javasqlConnection;

public class DbcpDao {

static BasicDataSource bds=null;

static ConnectionFactory cf=null;

static

{

bds=new BasicDataSource();

bdssetDriverClassName("commicrosoftsqlserverjdbcSQLServerDriver");

bdssetUrl("jdbc:sqlserver://127001:1433;DatabaseName=pubs");

bdssetUsername("sa");

bdssetPassword("123");

//对连接池进行设置

bdssetMaxActive(300);

bdssetInitialSize(100);

bdssetMaxWait(10000);

bdssetMaxIdle(50);

}

public static Connection getConnectionPool()throws Exception

{

Connection con=null;

//创建出一个位于jvm中的DBCP连接池

cf=new DataSourceConnectionFactory(bds);

//从创建好的连接池中取得连接

con=cfcreateConnection();

return con;

}

public static void main(String[] args) {

try {

long time1=SystemcurrentTimeMillis();

//测试获得200个连接所用的时间

Connection[] cons=new Connection[200];

for(int i=0;i<conslength;i++)

{

cons[i]=DbcpDaogetConnectionPool();

}

long time2=SystemcurrentTimeMillis();

Systemoutprintln(time2-time1);

} catch (Exception e) {

// TODO: handle exception

eprintStackTrace();

}

}

}

以上就是关于MySql数据库连接池如何配置全部的内容,包括:MySql数据库连接池如何配置、tomcat 怎么修改服务器的并发连接数、tomcat8.0怎么与mysql数据库连接池连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9267157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存