proxool-0.9.1配置

来源:互联网 发布:知乎轩辕剑 编辑:程序博客网 时间:2024/04/28 08:49
 项目中关于数据库的连接,一般都采用数据源的方式。反正这次是自己实现,没有其他的要求,就在网上找了一个好点的数据源的实现。看了好几篇文章,都说 Proxool 比较好,就采用它来实现数据源吧。下面来实现:1,在项目中的 WEB-INF 目录下建立 proxool.xml 文件(在其他目录也行,只要能找到就行),内容为: Xml代码 <?xml version="1.0" encoding="UTF-8"?>      <proxool>       <!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->       <alias>15DayWeb</alias>       <!-- 数据库驱动 -->       <driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>       <!-- 驱动程序类 -->       <driver-class>com.mysql.jdbc.Driver</driver-class>       <!-- 联机数据库的用户和密码 -->       <driver-properties>           <property name="user" value="root" />           <property name="password" value="root" />       </driver-properties>       <!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->       <minimum-connection-count>2</minimum-connection-count>        <!-- 最大连接数量,如果超过最大连接数量则会抛出异常                 连接数设置过多,服务器CPU和内存性能消耗很大 -->       <maximum-connection-count>20</maximum-connection-count>       <!-- 某一时间点的最大连接数 -->       <simultaneous-build-throttle>10</simultaneous-build-throttle>       <!-- 一次性产生连接的数量 -->       <prototype-count>2</prototype-count>       <!-- 连接最大时间活动 默认5分钟 单位:秒 -->       <maximum-active-time>120</maximum-active-time>       <!-- 连接最大生命时间 默认4小时 单位:秒 -->       <maximum-connection-lifetime>600</maximum-connection-lifetime>   </proxool>   <?xml version="1.0" encoding="UTF-8"?><proxool>    <!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->    <alias>15DayWeb</alias>    <!-- 数据库驱动 -->    <driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>    <!-- 驱动程序类 -->    <driver-class>com.mysql.jdbc.Driver</driver-class>    <!-- 联机数据库的用户和密码 -->    <driver-properties>        <property name="user" value="root" />        <property name="password" value="root" />    </driver-properties>    <!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->    <minimum-connection-count>2</minimum-connection-count>    <!-- 最大连接数量,如果超过最大连接数量则会抛出异常            连接数设置过多,服务器CPU和内存性能消耗很大 -->    <maximum-connection-count>20</maximum-connection-count>    <!-- 某一时间点的最大连接数 -->    <simultaneous-build-throttle>10</simultaneous-build-throttle>    <!-- 一次性产生连接的数量 -->    <prototype-count>2</prototype-count>    <!-- 连接最大时间活动 默认5分钟 单位:秒 -->    <maximum-active-time>120</maximum-active-time>    <!-- 连接最大生命时间 默认4小时 单位:秒 -->    <maximum-connection-lifetime>600</maximum-connection-lifetime></proxool>2,在项目中 web.xml 中添加所配置的数据源,在 web-app 下添加如下内容: Xml代码 <!-- 配置数据源 -->   <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提供的管理监控工具,可查看当前数据库连接情况。 -->   <servlet>       <servlet-name>Admin</servlet-name>       <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>   </servlet>      <servlet-mapping>       <servlet-name>Admin</servlet-name>       <url-pattern>/admin</url-pattern>   </servlet-mapping>   <!-- 配置数据源 --><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提供的管理监控工具,可查看当前数据库连接情况。 --><servlet>    <servlet-name>Admin</servlet-name>    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class></servlet>  <servlet-mapping>    <servlet-name>Admin</servlet-name>    <url-pattern>/admin</url-pattern></servlet-mapping>对于管理监视工具,如果不使用可以不进行配置。3,测试: Java代码 // 获取数据库连接    public void getConnection() throws Exception {                if (conn == null) {            //proxool驱动类             Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");            // 此处的DBPool是在proxool.xml中配置的连接池别名             conn = DriverManager.getConnection("proxool.15DayWeb");         }    }       // 数据库访问,执行查询操作    public ResultSet query(String sql) throws Exception {        // 初始化数据库连接         getConnection();        // 创建 Statement 对象         Statement stmt = conn.createStatement();        // 构造 sql 语句         sql = "select * from about_team_table";        return stmt.executeQuery(sql);    }       // 测试是否可以正常读取表 about_team_table 的数据    public static void main(String[] args) throws Exception {            DbDao dd = new DbDao();         ResultSet rs = dd.query("");        while (rs.next()) {             System.out.println(rs.getInt("id"));             System.out.println(rs.getString("name"));             System.out.println(rs.getString(3));             System.out.println(rs.getString(4));             System.out.println(rs.getBinaryStream("photo"));         }    }   // 获取数据库连接    public void getConnection() throws Exception {                if (conn == null) {            //proxool驱动类            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");            // 此处的DBPool是在proxool.xml中配置的连接池别名            conn = DriverManager.getConnection("proxool.15DayWeb");        }    }    // 数据库访问,执行查询操作    public ResultSet query(String sql) throws Exception {        // 初始化数据库连接        getConnection();        // 创建 Statement 对象        Statement stmt = conn.createStatement();        // 构造 sql 语句        sql = "select * from about_team_table";        return stmt.executeQuery(sql);    }    // 测试是否可以正常读取表 about_team_table 的数据    public static void main(String[] args) throws Exception {        DbDao dd = new DbDao();        ResultSet rs = dd.query("");        while (rs.next()) {            System.out.println(rs.getInt("id"));            System.out.println(rs.getString("name"));            System.out.println(rs.getString(3));            System.out.println(rs.getString(4));            System.out.println(rs.getBinaryStream("photo"));        }    }可以正常使用,测试中不主动关闭连接,在监视工具中当超过活动连接时间自动销毁,不过在使用中还是要释放连接的,连接的最大数毕竟是有限的。tomcat 版本:apache-tomcat-6.0.18JDK 版本:jdk-6u11-windows-i586-pNetBeans版本:netbeans-6.5-ml-windowsproxool 版本:proxool-0.9.1 


 

原创粉丝点击