利用proxool配置连接池进行数据库连接

利用proxool配置连接池进行数据库连接
Proxool技术是一种开源的java连接池技术,具体介绍google或者百度之。项目组使用它的原因是它在性能上和易用性上都有很大的优势。
    1,下载与安装
    http://proxool.sourceforge.net/ 页面下载jar文件,将路径加入到project的buildpath里面
    2,配置
    在proxool主站的配置页下,介绍了5种配置proxool连接池的方法,当然目前最直接最方便和通用的无疑是强大的xml技术,因此我们采用的就是利用xml配置文件进行配置的方法。
下面是一段配置文件proxool.xml的示例(数据库采用的是sqlserver):
 1  <? xml version="1.0" encoding="UTF-8" ?>
 2  < something-else-entirely >
 3     < proxool >
 4       < alias > your_own_name </ alias >
 5       < driver-url > jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=database_name </ driver-url >
 6       < driver-class > com.microsoft.jdbc.sqlserver.SQLServerDriver </ driver-class >
 7       < driver-properties >
 8         < property  name ="user"  value ="xxxxxx" />
 9         < property  name ="password"  value ="xxxxxx" />
10       </ driver-properties >
11       < maximum-connection-count > 5 </ maximum-connection-count >
12       < minimum-connection-count > 2 </ minimum-connection-count >
13       < house-keeping-test-sql > select CURRENT_DATE </ house-keeping-test-sql >
14     </ proxool >
15     < proxool >
16       < alias > xxxx </ alias >
17       < driver-url > jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name </ driver-url >
18       < driver-class > com.microsoft.jdbc.sqlserver.SQLServerDriver </ driver-class >
19       < driver-properties >
20         < property  name ="user"  value ="xxxxxx" />
21         < property  name ="password"  value ="xxxxxx" />
22       </ driver-properties >
23       < maximum-connection-count > 5 </ maximum-connection-count >
24       < minimum-connection-count > 2 </ minimum-connection-count >
25       < house-keeping-test-sql > select CURRENT_DATE </ house-keeping-test-sql >
26     </ proxool >
27  </ something-else-entirely >
28 

配置文件中的一些内容需要修改成自己项目对应的信息。
 1.<alias>  :为该连接池起一个别名,在其他文件中引用。引用是:(proxool.your_own_name);
 2. <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
    <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
      <driver-properties>
      <property name="user" value="xxxxxx"/>
      <property name="password" value="xxxxxx"/>
    </driver-properties>
    这些配置大家应该比较熟悉吧。配置JDBC连接不同数据库的驱动类和连接URL。
 4.<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
    proxool在未断开的连接空闲的时候 会隔段时间执行这条sql语句以维持连接
 5.<maximum-new-connections>:指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受。
 6.<prototype-count>:最少保持的空闲连接数。
 7.<maximum-connection-count>: 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定
 8.<minimum-connection-count>:最小连接数

   3.初始化连接池
在proxool的包中有这样一个类org.logicalcobwebs.proxool.configuration.JAXPConfigurator可以接收xml配置文件解析并进行初始化连接池。
1  JAXPConfigurator.configure( " src/java-test/org/logicalcobwebs/proxool/configuration/proxool.xml " false );
2  //  The false means non-validating

一般使用包装好的org.logicalcobwebs.proxool.configuration.ServletConfigurator类进行解析
如果在tomcat启动的时候web.xml中加入ServletConfigurator类的servlet配置并将此servlet的加载顺序提前 那么此连接池在启动的时候就会创建好
< servlet >
    
< servlet-name > proxoolServletConfigurator </ servlet-name >
    
< servlet-class > org.logicalcobwebs.proxool.configuration.ServletConfigurator </ servlet-class >
    
< init-param >
      
< param-name > xmlFile </ param-name >
      
< param-value > WEB-INF/proxool.xml </ param-value >
    
</ init-param >
    
< load-on-startup > 1 </ load-on-startup >
</ servlet >

这样以来,就能够在程序中应用连接池进行连接数据库了。

    4.利用连接池连接数据库
使用下面的语句:
1  connection  =  DriverManager.getConnection( " proxool.your_own_name " );

    5.利用proxool提供的web化监测所配置的连接池
proxool中提供了AdminServlet监测连接池中的数据库,利用web.xml配置其servlet mapping 就可以通过浏览器进行监测了。
同样在web.xml中配置
1  < servlet >
2       < servlet-name > Admin </ servlet-name >
3       < servlet-class > org.logicalcobwebs.proxool.admin.servlet.AdminServlet </ servlet-class >
4     </ servlet >
5     < servlet-mapping >
6       < servlet-name > Admin </ servlet-name >
7       < url-pattern > /admin </ url-pattern >
8     </ servlet-mapping >

具体内容很简单,不再详细解释了。





你可能感兴趣的:(利用proxool配置连接池进行数据库连接)