Proxool-0.9.1 配置

项目中关于数据库的连接,一般都采用数据源的方式。反正这次是自己实现,没有其他的要求,就在网上找了一个好点的数据源的实现。看了好几篇文章,都说 Proxool 比较好,就采用它来实现数据源吧。下面来实现:

 

1,在项目中的 WEB-INF 目录下建立 proxool.xml 文件(在其他目录也行,只要能找到就行),内容为:

 

 

Xml代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <proxool>  
  4.     <!-- 数据库连接别名,通过 proxool.15DayWeb 来获取此连接 -->  
  5.     <alias>15DayWeb</alias>  
  6.     <!-- 数据库驱动 -->  
  7.     <driver-url>jdbc:mysql://localhost:3306/15dayweb</driver-url>  
  8.     <!-- 驱动程序类 -->  
  9.     <driver-class>com.mysql.jdbc.Driver</driver-class>  
  10.     <!-- 联机数据库的用户和密码 -->  
  11.     <driver-properties>  
  12.         <property name="user" value="root" />  
  13.         <property name="password" value="root" />  
  14.     </driver-properties>  
  15.     <!-- 最小连接数量,建议设置0以上,保证第一次连接时间 -->  
  16.     <minimum-connection-count>2</minimum-connection-count>  
  17.      <!-- 最大连接数量,如果超过最大连接数量则会抛出异常   
  18.              连接数设置过多,服务器CPU和内存性能消耗很大 -->  
  19.     <maximum-connection-count>20</maximum-connection-count>  
  20.     <!-- 某一时间点的最大连接数 -->  
  21.     <simultaneous-build-throttle>10</simultaneous-build-throttle>  
  22.     <!-- 一次性产生连接的数量 -->  
  23.     <prototype-count>2</prototype-count>  
  24.     <!-- 连接最大时间活动 默认5分钟 单位:秒 -->  
  25.     <maximum-active-time>120</maximum-active-time>  
  26.     <!-- 连接最大生命时间 默认4小时 单位:秒 -->  
  27.     <maximum-connection-lifetime>600</maximum-connection-lifetime>  
  28. </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代码
  1. <!-- 配置数据源 -->  
  2. <servlet>  
  3.     <servlet-name>ServletConfigurator</servlet-name>  
  4.     <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>  
  5.     <init-param>  
  6.         <param-name>xmlFile</param-name>  
  7.         <param-value>WEB-INF/proxool.xml</param-value>  
  8.     </init-param>  
  9.     <load-on-startup>1</load-on-startup>  
  10. </servlet>  
  11. <!-- proxool提供的管理监控工具,可查看当前数据库连接情况。 -->  
  12. <servlet>  
  13.     <servlet-name>Admin</servlet-name>  
  14.     <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>  
  15. </servlet>     
  16. <servlet-mapping>  
  17.     <servlet-name>Admin</servlet-name>  
  18.     <url-pattern>/admin</url-pattern>  
  19. </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代码
  1. // 获取数据库连接   
  2. public void getConnection() throws Exception {   
  3.        
  4.     if (conn == null) {   
  5.         //proxool驱动类   
  6.          Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");   
  7.         // 此处的DBPool是在proxool.xml中配置的连接池别名   
  8.          conn = DriverManager.getConnection("proxool.15DayWeb");   
  9.      }   
  10. }   
  11.   
  12. // 数据库访问,执行查询操作   
  13. public ResultSet query(String sql) throws Exception {   
  14.     // 初始化数据库连接   
  15.      getConnection();   
  16.     // 创建 Statement 对象   
  17.      Statement stmt = conn.createStatement();   
  18.     // 构造 sql 语句   
  19.      sql = "select * from about_team_table";   
  20.     return stmt.executeQuery(sql);   
  21. }   
  22.   
  23. // 测试是否可以正常读取表 about_team_table 的数据   
  24. public static void main(String[] args) throws Exception {   
  25.   
  26.      DbDao dd = new DbDao();   
  27.      ResultSet rs = dd.query("");   
  28.     while (rs.next()) {   
  29.          System.out.println(rs.getInt("id"));   
  30.          System.out.println(rs.getString("name"));   
  31.          System.out.println(rs.getString(3));   
  32.          System.out.println(rs.getString(4));   
  33.          System.out.println(rs.getBinaryStream("photo"));   
  34.      }   
  35. }  
// 获取数据库连接 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")); } }

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值