免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1074 | 回复: 0
打印 上一主题 下一主题

数据库连接组合装(Proxool) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-04 17:04 |只看该作者 |倒序浏览
网址:
http://proxool.sourceforge.net/
   
当前版本:proxool-0.9.0RC2
    1、下载proxool 地址:
http://proxool.sourceforge.net
    2、解压缩proxool-0.9.0RC2.zip,拷贝lib/proxool-0.9.0RC2.jar到web-info/lib      拷贝jdbc驱动到web-info/lib
    3、在web-info下建立文件:proxool.xml
  
    Test
    jdbc:oracle:thin:@192.168.10.160:1521:orc1
    oracle.jdbc.driver.OracleDriver
   
      
      
   
    10
    select CURRENT_DATE
   
4、在web.xml里新增如下:
      proxoolServletConfigurator
    org.logicalcobwebs.proxool.configuration.ServletConfigurator
     
       xmlFile
       WEB-INF/config/proxool.xml
     
     1
   
    Admin
      org.logicalcobwebs.proxool.admin.servlet.AdminServlet
   
   
    Admin
    /admin
   
5、在调用数据库连接代码:
       Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
       Connection conn = DriverManager.getConnection("proxool.Test");
               
6、利用proxool监控工具查看数据库运行状态。地址:./admin
      以上配置是采用的XML文件方式,也可以采用properties配置方式:
proxool.alias=Test
proxool.driver-class=oracle.jdbc.driver.OracleDriver
proxool.driver-url=jdbc:oracle:thin:@192.168.10.160:1521:orcl
proxool.user=test
proxool.password=testpass
proxool.maximum-connection-count=20
proxool.prototype-count=4
proxool.house-keeping-test-sql=select sysdate from DUAL
proxool.verbose=true
proxool.statistics=10s,1m,1d
proxool.statistics-log-level=ERROR

ServletConfigurator
org.logicalcobwebs.proxool.configuration.ServletConfigurator

  
   propertyFile
   WEB-INF/config/Proxool.properties
  
1

在调用数据库连接代码
   Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
   Connection conn = DriverManager.getConnection("proxool.Test");
还有一些配置属性:
maximum-connection-lifetime   最大连接生命周期  默认值:4小时
maximum-active-time:     最大活动时间   默认值:5分钟
maximum-connection-count   最大连接数    默认值:15个
minimum-connection-count   最小连接数    默认值:5个
在用admin调用的时候,可以查看这个WEB应用所有的连接数的状态,虽然这个插件可以把不活动的连接自动放到连接池里,但是如果连接数过多,而不及时KILL的话,对网站的连接是有很大的影响的,建议还是手工KILL。
---上面是介绍Proxool怎么使用
---下面就是一个连接的实例:
public class ConnDB {
   
    private Logger logger=Logger.getLogger(ConnDB.class);
    private Connection conn=null;
    private Statement stmt=null;
    private ResultSet rs=null;
   
    /**
     * 获取数据库连接
     * @return
     */
    public Connection getConn(){
        try {
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
            conn=DriverManager.getConnection("proxool.test");
        } catch (ClassNotFoundException e) {
            logger.error("getConn()", e);
        } catch (SQLException e) {
            logger.error("getConn()获取数据库连接池时出错!", e);
        }
        return conn;
    }
   
    /**
     * 执行查询语句sql
     * @param sql
     * @return
     */
    public ResultSet getResultSet(String sql){
        try {
            if(conn==null||conn.isClosed()) conn=this.getConn();
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
        } catch (SQLException e) {
            logger.error("执行查询语句"+sql+"出错:",e);
        }
        return rs;
    }
   
    /**
     * 更新sql语句
     * @param sql
     * @return  整数,更新的条数
     */
    public int excuteUpdate(String sql){
        int result=0;
        try {
            if(conn==null||conn.isClosed()) conn=this.getConn();
            result=conn.createStatement().executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return result;
    }
   
    /**
     * 关闭连接
     */
    public void closeConn(){
        try{
            if(rs!=null){
                rs.close();
                rs=null;
            }
            if(stmt!=null){
                stmt.close();
                stmt=null;
            }
            if(conn!=null){
                conn.close();
                conn=null;
            }
        }catch (SQLException e) {
            logger.error("关闭数据库连接出错", e);
        }
        
    }
}   
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55633/showart_726109.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP