- 1. Proxool数据连接池王健北京传智播客教育 www.itcast.cn
- 2. Proxool简介:Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。
目前是和DBCP以及C3P0一起,最为常见的三种JDBC连接池技术。
目前,Hibernate官方宣布由于Bug太多不再支持DBCP,而推荐使用 Proxool或C3P0。
更多说明见API文档。 北京传智播客教育 www.itcast.cn
- 3. QUICK-Start:准备包:
//以下通过Proxool建立与Mysql的连接
Connection con = null;
//加载ProxoolDriver类
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
//声明使用的类和URL
String url = "jdbc:mysql://127.0.0.1:3306/exam?useUnicode=true&characterEncoding=UTF-8";
String driver = "com.mysql.jdbc.Driver";
//连接数据库,其中proxool.wj中的wj是连接别名,后面使用:隔开
con = DriverManager.getConnection("proxool.wj:"+driver+":"+url,"root","root");北京传智播客教育 www.itcast.cn
- 4. 通过配置资源文件来建立连接:#properties文件
proxool.maximum-connection-count=20
proxool.house-keeping-test-sql=SELECT CURRENT_DATE
user=root
password=rootProperties p = new Properties();
//加载本地的资源文件
p.load(Demo2.class.getResourceAsStream("Demo2.properties"));
String alias = "wj";//定义别名
String url = "jdbc:mysql://127.0.0.1:3306/exam?useUnicode=true&characterEncoding=UTF-8";
String driver = "com.mysql.jdbc.Driver";
//仍然需要加载proxoodriver驱动
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection con = DriverManager.getConnection("proxool."+alias+":"+driver+":"+url,p);
System.err.println(">>:"+con);
con.close();北京传智播客教育 www.itcast.cn
- 5. 通过配置XML文件建立与数据库的连接:
wj-test
com.mysql.jdbc.Driver
10
select CURRENT_DATE
北京传智播客教育 www.itcast.cn
- 6. 第二步:通过JaxpConfigurator读取配置文件:public class Demo3 {
public static void main(String[] args) throws Exception {
JAXPConfigurator.configure("./src/com/a/Demo3.xml",false);
//wj是别名
Connection con = DriverManager.getConnection("proxool.wj");
System.err.println(">>>>:"+con);
con.close();
}
}北京传智播客教育 www.itcast.cn
- 7. 在Java项目中使用ProxoolDataSource:第一步:读取配置文件。
false参数是指不对xml进行验证。
第二步:实例化ProxoolDataSource并指定别名。
第三步:使用DataSource
JAXPConfigurator.configure("./src/com/b/Demo1.xml",false);
DataSource ds = new ProxoolDataSource("wj-test");
System.err.println(">>>:"+ds.getConnection());北京传智播客教育 www.itcast.cn
- 8. 在Web项目中使用Proxool的数据连接池:第一步:引入包北京传智播客教育 www.itcast.cn
- 9. 第二步:在Web.xml中添加Proxool的配置:
proxool
org.logicalcobwebs.proxool.configuration.ServletConfigurator
xmlFile
/WEB-INF/conf/proxool.xml
1
admin
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
admin
/admin
北京传智播客教育 www.itcast.cn
- 10. 第三步:书写Proxool的连接配置文件:在WEB-INF/conf目录下:
wj-test
com.mysql.jdbc.Driver
10
select CURRENT_DATE
北京传智播客教育 www.itcast.cn
- 11. 第四步:书写连接池的静态工厂类:package cn.pub;
import org.logicalcobwebs.proxool.ProxoolDataSource;
/**
* Proxool的数据连接池
* @author 王健
*/
public class DBPool {
private static DataSource dataSource;
static{
dataSource = new ProxoolDataSource("wj-test");
}
public static DataSource getDatasSource(){
return dataSource;
}
public static Connection getConn(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e.getMessage(),e);
}
}
}北京传智播客教育 www.itcast.cn
- 12. 第五步:在Servlet中使用Proxool的连接:public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
QueryRunner run = new QueryRunner(DBPool.getDatasSource());
try {
List
- 13. 在地址栏输入以下信息查看监控:http://localhost:8080/project/admin北京传智播客教育 www.itcast.cn
- 14. 总结:方便。
快捷。
简单。北京传智播客教育 www.itcast.cn