proxool-0.9.1连接池配置使用心得

今天在开发的时,使用mysql连接池时老出错,自己动手实践了好一会才解决。所以和喜欢编程的朋友一起分享。
  按照文档要求,在项目中导入了三个jar包:proxool-0.9.1.jar、proxool-cglib.jar和mysql-connector-java-5.0.8-bin.jar,写好了测试类和配置文件:
我的xml配置如下:
<proxool>
 <alias>mysql</alias>
 <driver-class>com.mysql.jdbc.Driver</driver-class>
 <driver-url>
         jdbc:mysql://localhost:3306/wzy?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;mysqlEncoding=utf8
 </driver-url>
 <driver-properties>
  <property name="user" value="root" />
  <property name="password" value="mysql" />
 </driver-properties>
 <house-keeping-test-sql>
  select CURRENT_DATE
 </house-keeping-test-sql>
 <maximum-active-time>120000</maximum-active-time>
 <house-keeping-sleep-time>120000</house-keeping-sleep-time>
 <prototype-count>2</prototype-count>
 <maximum-connection-count>60</maximum-connection-count>
 <minimum-connection-count>20</minimum-connection-count>
 <verbose>true</verbose>
 <statistics-log-level>INFO</statistics-log-level>
 <simultaneous-build-throttle>300</simultaneous-build-throttle>
</proxool>
我的测试java如下:
package net.fygk.test;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;

public class ProxoolTest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  System.out.println(getMysqlPolxoolConnection());
 }
 
 public static Connection getMysqlPolxoolConnection()
 {
  Connection conn = null;
  //Logger log  = Logger.getLogger("InitAction");
  try
  {
   //Java应用中先要加载配置文件,否则谁知道你配置给谁用的
   InputStream in = ProxoolTest.class.getResourceAsStream("proxool.xml");
   Reader reader = new InputStreamReader(in,"GB2312");
   JAXPConfigurator.configure(reader, false);
   //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动
   Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
   //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名
     conn = DriverManager.getConnection("proxool.mysql");

  }catch(Exception ex)
  {
   ex.printStackTrace();
  }
  return conn;
 }
}
结果,一运行,抛出以下异常,在网上一搜,都是关于web方面的,纯java的很少,看来得自己想办法解决了。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.logicalcobwebs.proxool.configuration.JAXPConfigurator.<clinit>(JAXPConfigurator.java:42)
at net.fygk.test.ProxoolTest.getMysqlPolxoolConnection(ProxoolTest.java:69)
at net.fygk.test.ProxoolTest.main(ProxoolTest.java:20)
从第一条来看,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory,主要是因为没有找到LogFactory这个类文件,所以才产生了NoClassDefFoundError,于是,便又从网站上下了一个commons-logging.jar,导入到项目中,一切OK!

下载 proxool-0.9.1    http://proxool.sourceforge.net/
需要 四个包:
proxool-0.9.1.jar      proxool-cglib.jar    commons-logging.jar mysql-connector-java-5.0.8-bin.jar (少一个都报错)

你可能感兴趣的:(proxool-0.9.1连接池配置使用心得)