java 连接池proxool_Java数据库连接池之proxool_动力节点Java学院整理

proxool是一种java数据库连接池技术。sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。

目前是和dbcp以及c3p0一起,最为常见的三种jdbc连接池技术。

日前,hibernate官方宣布由于bug太多不再支持dbcp,而推荐使用 proxool或c3p0。

下面通过一个demo说明一下如何使用:

项目结构如下:

dblink.java文件中的代码:

package com.bjpowernode.util;

import java.sql.connection;

import java.sql.drivermanager;

import java.sql.preparedstatement;

import java.sql.resultset;

import java.sql.resultsetmetadata;

import java.sql.sqlexception;

import java.util.arraylist;

import java.util.hashmap;

import java.util.list;

import java.util.map;

public class dblink {

private connection connection;

private preparedstatement preparedstatement;

private resultset resultset;

static{

try {

class.forname("org.logicalcobwebs.proxool.proxooldriver"); //加载驱动

}catch (classnotfoundexception e) {

system.out.println("加载驱动失败!");

e.printstacktrace();

}

}

private connection getconn(){

try {

if(connection==null||connection.isclosed()){

connection = drivermanager.getconnection("proxool.mysqlsource"); //获取连接

}

} catch (sqlexception e) {

system.out.println("获取连接失败!");

e.printstacktrace();

}

return connection;

}

public list> select(string sql, object [] params){

list> list = new arraylist>();

try{

connection = this.getconn();

preparedstatement = connection.preparestatement(sql);

if(params != null){

for(int i =0; i

preparedstatement.setobject(i+1, params[i]);//逐一给问号赋值

}

}

resultset = preparedstatement.executequery();

resultsetmetadata rsmd = resultset.getmetadata();

int columncount = rsmd.getcolumncount();

while(resultset.next()){

map map = new hashmap();

for(int i =1; i<=columncount;i++){

string columnname = rsmd.getcolumnname(i);

object obj = null;

if(rsmd.getcolumntypename(i).equals("date")){

obj = resultset.getstring(columnname);

}else{

obj = resultset.getobject(columnname);

}

map.put(columnname, obj);

}

list.add(map);

}

}catch(sqlexception e){

e.printstacktrace();

}finally{

close();

}

return list;

}

private void close(){

try {

if(resultset != null){

resultset.close();

}

} catch (sqlexception e) {

e.printstacktrace();

}

try {

if(preparedstatement != null){

preparedstatement.close();

}

} catch (sqlexception e) {

e.printstacktrace();

}

try {

connection.close();

} catch (sqlexception e) {

e.printstacktrace();

}

}

}

proxool.xml文件中的代码:

mysqlsource

jdbc:mysql://localhost:3306/test

com.mysql.jdbc.driver

60000

30

10

5

1

1

30s,10m,1d

error

true

select current_date

web.xml文件中的代码:

xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

servletconfigurator

org.logicalcobwebs.proxool.configuration.servletconfigurator

xmlfile

web-inf/proxool.xml

1

index.jsp

index.jsp文件中的代码:

首页
序号 班级名称开班日期结束日期状态操作

string sql = "select id, class_name, begin_date, end_date, state from class ";

dblink db = new dblink();

list> list = db.select(sql, null);

int index = 0;

for (map map : list) {

index = index + 1;

int id = integer.parseint(map.get("id").tostring());

string classname = map.get("class_name").tostring();

string begindate = map.get("begin_date").tostring();

string enddate = map.get("end_date").tostring();

int state = integer.parseint(map.get("state").tostring());

string statename = (state == 0 ? "未启用" : "启用");

%>

修改】【 查看】【 删除

}

%>

总结

以上所述是小编给大家介绍的java数据库连接池之proxool,希望对大家有所帮助

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值