栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 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文件中的代码:

 
 
 
   
   
    ServletConfigurator 
    org.logicalcobwebs.proxool.configuration.ServletConfigurator 
     
      xmlFile 
      WEB-INF/proxool.xml 
     
    1 
   
   
   
    index.jsp 
   
 

        index.jsp文件中的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@page import="com.bjpowernode.util.DBlink,java.util.List,java.util.Map"%> 
 
 
   
    首页 
   
 
   
     
      <% 
 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 ? "未启用" : "启用"); 
      %> 
       
      <% 
 } 
      %> 
    
序号 班级名称开班日期结束日期状态操作
<%=index%><%=className%><%=beginDate%><%=endDate%><%=stateName%>【修改】【查看】【删除】

总结

以上所述是小编给大家介绍的Java数据库连接池之proxool,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/145007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号