JDBC之数据库连接(proxool)

来源:互联网 发布:淘宝客服务要订吗 编辑:程序博客网 时间:2024/06/11 14:09

JDBC在应用程序中,主要是干三件事
A、数据库的连接
B、执行SQL语句
C、处理结果集
这一节主要是深究项目中的第一个使用场景,使用的proxool连接池来批量处理数据库的连接
、理解proxool连接池的首先理解这两个Servlet的作用,并配置好
1、org.logicalcobwebs.proxool.configuration.ServletConfigurator
2、org.logicalcobwebs.proxool.admin.servlet.AdminServlet
ServletConfigurator是必须的一个Servlet必须配置在Web.xml中,这个主要的作用是为了把proxool配置的信息加载到运行的内存中供应用程序调用,具体的过程是在配置这个Servlet的时候就要把初始化参数<init-param>value</init-param>配置好如下:

<servlet><servlet-name>ServletConfigurator</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>

注意:只需要配置进内存供应用程序使用,不需要映射路径因为外部的不会调用它。
如果proxool参数使用XML文件配置的话,初始化参数的名字是xmlFile,这个是在Servlet中就已经写死的,不想自己在想办法处理的话必须写它。
第二种方式是用properties的形式来配置参数,配置只需要吧Web.xml中初始化参数那一部分换成如下:

<init-param><param-name>propertyFile</param-name><param-value>WEB-INF/proxool.properties</param-value></init-param>

这个有个不好的地方我目前只知道配置连接一个数据库的配置,而XML文件可以把多个数据库的配置。
AdminServlet的作用是用来监测数据库的连接情况,使用proxool提供的只需要配置好就会在启动应用程序的时候把这个Servlet给启动,配置如下:

<servlet><servlet-name>Admin</servlet-name><servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>Admin</servlet-name><url-pattern>/admin</url-pattern></servlet-mapping>

这个要给它映射路径,是供管理员查看数据库连接等情况使用的。
这里写图片描述

、接下来就是在具体的文件配置属性XML形式、properties文件形式,从源码看其实还有另外初始化参数配置两种–(1)文件名autoShutdown和(2)以jdbc开始的配置字符串位于value。后面两种情况没试过,有时间有兴趣可以再研究,本文要记录的是第一种
以XML形式

<?xml version="1.0" encoding="UTF-8"?><something-else-entirely><proxool><alias>Happy</alias> <!--数据源的别名 --><driver-url>jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Happy</driver-url><driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class> <!--驱动类 --><driver-properties><property name="user" value="happy" /> <!--用户名 --><property name="password" value="1111ws" /><!--密码 --></driver-properties><simultaneous-build-throttle>50</simultaneous-build-throttle><!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 --><maximum-connection-count>1000</maximum-connection-count><!--最小连接数(默认2个) --><minimum-connection-count>50</minimum-connection-count><!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒 --><house-keeping-sleep-time>30000</house-keeping-sleep-time><!-- 线程活动最大时间,默认是5分钟.<maximum-active-time>6000000</maximum-active-time> --><!--最少保持的空闲连接数(默认2个) --><prototype-count>50</prototype-count><!--在使用之前测试 --><test-before-use>true</test-before-use><!--用于保持连接的测试语句 --><house-keeping-test-sql>select 1</house-keeping-test-sql></proxool><proxool><!--同上具体根据第二个数据库的参数自行修改,还可以再设置其他数据库 --></proxool></something-else-entirely>

、最后肯定是要在应用程序中使用建立起来的连接啊

public static Connection getConnection() throws SQLException {Connection connection = null;connection = DriverManager.getConnection("proxool.happy");return connection;}

返回的connection,就可以用了。JDBC关于第一件事处理数据库的连接使用proxool就这样处理完了。

原创粉丝点击