`
7tianle
  • 浏览: 95157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Proxool连接池使用方法

    博客分类:
  • ssh
阅读更多
首先, 你要把下载 proxool 的 lib 下面所有的 jar 文件, 放到 WEB-INF/lib 下面, 
另外, 把你的 jdbc driver 也放到相同的 lib, 
接著就是设定 /WEB-INF/web.xml 

web.xml
#########web.xml start here 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"/WEB-INF/dtds/web-app_2_3.dtd">
<web-app>
<display-name>proxool</display-name>
<servlet>
  <servlet-name>Admin</servlet-name>
  <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>Admin</servlet-name>
  <url-pattern>/admin</url-pattern>
</servlet-mapping> 

</web-app>

#########web.xml end here 


SECTION 02 透过 ProxoolDriver 取得 connection 

建立一个 jsp or DAO Bean, 透过 org.logicalcobwebs.proxool.ProxoolDriver 建立 Connection

test.jsp

<%@page import="java.sql.*"%>
<%
Connection connection = null;
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");

connection = DriverManager.getConnection(
"proxool.test:org.gjt.mm.mysql.Driver:jdbc:mysql://localhost:3306/test",
"root",
"password"
);
} catch (Exception e) {
out.println(e);
}
out.println("OK");
%>


SECTION 04 检视 pooling 现在状态 

执行 http://localhost:8080/proxool-test/admin  如果没有任何 pool 状态的时候, 你只会看到 Pools 这几个字, 所以你先执行 http://localhost:8080/proxool-test/test.jsp  建立一个 connection, 就可以监控 connection pooling 的状态了. 

SECTION 05 使用 properties 或者 xml 来设定 DB URL 及 Driver 

可以采用 xml 设定, 在程式中使用 JAXPConfigurator.configure("proxool.xml", false); 将资料设定 

WEB-INF/proxool.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
  <proxool>
    <alias>xml-test</alias>
    <driver-url>jdbc:mysql://localhost:3306/test</driver-url>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <driver-properties>
      <property name="user" value="root"/>
      <property name="password" value="password"/>
    </driver-properties>
    <maximum-connection-count>10</maximum-connection-count>
    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
  </proxool>
</something-else-entirely>


也可以采用 properties, 在程式 PropertyConfigurator.configure("proxool.properties"); 将资料设定 

WEB-INF/proxool.properties
jdbc-0.proxool.alias=property-test
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/test
jdbc-0.proxool.driver-class=org.gjt.mm.mysql.Driver
jdbc-0.user=root
jdbc-0.password=password
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE


如果在 Web 使用, 在 web.xml 也可以设定 ServletConfigurator Servlet 来注册

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"/WEB-INF/dtds/web-app_2_3.dtd">
<web-app>
<display-name>proxool</display-name>

<servlet>
  <servlet-name>ServletConfigurator</servlet-name>
  <servlet-class>
  org.logicalcobwebs.proxool.configuration.ServletConfigurator
  </servlet-class>
 
  <init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
  </init-param>

   <load-on-startup>1</load-on-startup>

</servlet> 

<servlet>
  <servlet-name>Admin</servlet-name>
  <servlet-class>
  org.logicalcobwebs.proxool.admin.servlet.AdminServlet
  </servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>Admin</servlet-name>
  <url-pattern>/admin</url-pattern>
</servlet-mapping> 

</web-app>


在程式中, 只需要利用到别名就可以呼叫 connection pool 里面的 connection 来使用了 

<%@page import="java.sql.*;"%>
<%
Connection connection = null;
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
connection = DriverManager.getConnection("proxool.xml-test");

} catch (Exception e) {
out.println(e);
}

out.println("ok");
%>


SECTION 06 使用 connection.close() 关闭 connection 

以上的例子我都没有写 close, 在 connection 做完之后记得使用 close() 来关闭,否则很快就会到达最大连接数的. 
SECTION 07 中文问题

和往常一样,中文的问题就会出现。对于mysql,好消息是写入数据库的中文可以正常,坏消息是显示的中文还是不正常。

和以往的方法不一样,要正确显示,必须用
String des = new String(s_string.getBytes("GBK"),"iso8859-1");
把GBK转为iso8859-1就可以正常使用了,另外,用下面的方法也可以解决:

在MYSQL的MY.INI里加上
[mysqld]
default-character-set = gb2312
[client]
default-character-set = gb2312


SECTION 07 多类型连接的问题

经常在应用中即需要连接MYSQL,又需要连接ORACLE,又该如何去实现呢?我们可以用proxool.xml来实现:

<?xml version="1.0" encoding="UTF-8"?>
<foo>
<proxool>
<alias>xfort</alias>
<driver-url>jdbc:jtds:sqlserver://xforttest/XFORT</driver-url>
<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="xfort" />
<property name="password" value="xfort" />
</driver-properties>
</proxool>
<proxool>
<alias>xfort5</alias>
<driver-url>jdbc:jtds:sqlserver://xforttest/XFORT5</driver-url>
<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="xfort" />
<property name="password" value="xfort" />
</driver-properties>
</proxool>
</foo>

用的时候:

JAXPConfigurator.configure("proxool.xml", false);

Connection conn = DriverManager.getConnection("proxool.xfort");
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM table");
pstmt.executeQuery();
conn.close();

conn = DriverManager.getConnection("proxool.xfort5");
pstmt = conn.prepareStatement("SELECT * FROM table");
pstmt.executeQuery();
conn.close();
分享到:
评论

相关推荐

    proxool连接池使用详细说明

    下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池实现。Proxool通过创建一个数据库连接池来管理数据库连接...

    proxool连接池用户名密码加密

    2. **使用说明**:这份文档详细阐述了如何在Proxool连接池配置中使用加密的用户名和密码。它可能涵盖了以下步骤: - **加密过程**:说明如何使用提供的jar文件对数据库的用户名和密码进行加密,生成可以安全存储的...

    proxool连接池配置文件

    项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用

    在Hibernate中配置Proxool连接池

    以下是如何配置SessionFactory以使用Proxool连接池: ```xml &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.Oracle9Dialect&lt;/prop&gt; &lt;!-- 数据库方言 --&gt; &lt;prop key="hibernate.show_sql"&gt;true...

    proxool连接池配置

    -- 连接池的别名 --&gt; &lt;alias&gt;DBPool&lt;/alias&gt; - &lt;!-- proxool只能管理由自己产生的连接 --&gt; &lt;driver-url&gt;jdbc:sqlserver://localhost:1433;dataBaseName=books&lt;/driver-url&gt; - &lt;!-- JDBC驱动程序 --&gt; ...

    proxool连接池所涉及的jar包文件

    在本压缩包中,包含的是与Proxool连接池相关的MySQL驱动jar包,这将有助于在Java应用程序中建立与MySQL数据库的连接。 首先,我们来深入理解一下Proxool连接池。Proxool的核心功能是创建一个池化的数据库连接集合,...

    proxool连接池配置详解

    ### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...

    Spring+Hibernate+Proxool连接池

    标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...

    proxool连接池jar包

    在实际应用中,使用Proxool连接池的步骤通常包括: 1. 添加依赖:将这两个jar文件添加到项目的类路径中。 2. 配置Proxool:创建XML配置文件,定义数据库连接的相关参数,如URL、用户名、密码以及池的大小等。 3. ...

    ssh2简单案例,注解+proxool连接池+sf4j记录日志

    在这个"ssh2简单案例"中,我们将探讨如何结合注解、Proxool连接池和SF4J日志记录来构建一个SSH2注册登录系统。 首先,SSH2在Java中的实现通常通过JSch库来完成。JSch允许开发者在Java程序中执行命令、传输文件以及...

    proxool连接池

    ### Proxool 的使用方法: 1. **添加依赖**:在项目中引入Proxool的相关jar包,如`proxool-cglib.jar`和`proxool-0.9.1.jar`。 2. **创建连接池**:使用`orgproxoolSqlPoolDataSource`类创建数据源对象,然后根据...

    Proxool连接池jar包

    总的来说,Proxool连接池提供了一种轻量级、易于使用的数据库连接管理方案,能够有效提高Java应用程序处理数据库的能力,降低系统资源的消耗,同时通过监控和统计功能帮助我们更好地理解和优化系统性能。在选择和...

    proxool连接池使用说明

    【Proxool 连接池】是一个高效且可扩展的数据库连接池,它通过复用已存在的数据库连接,显著提高了数据库操作的性能。连接池管理数据库连接的分配、监控和释放,防止因未正确释放连接而导致的资源浪费。Proxool 设计...

    Hibernate Proxool连接池配置总结及常遇问题

    **Hibernate Proxool...正确配置和使用Hibernate Proxool连接池对于优化Java应用程序的性能至关重要。理解并掌握Proxool的各项配置参数,以及在遇到问题时能及时诊断和解决,能够帮助我们构建更加稳定和高效的系统。

    Proxool连接池及使用文档

    在学习Proxool的过程中,提供的文档是十分重要的,它将详细介绍如何配置、使用和诊断Proxool连接池,以确保你在实际项目中能够充分利用其优势,优化数据库访问效率。通过阅读文档,你可以了解更深入的细节,例如连接...

    Proxool连接池实例.zip

    在这个"Proxool连接池实例.zip"压缩包中,我们可以推测包含了一些关于如何在C#环境下集成和使用Proxool连接池的示例代码和相关资源。 首先,让我们深入理解一下Proxool连接池的工作原理。Proxool维护了一个数据库...

    基于ssh的proxool连接池配置

    在这里,我们通过`dataSource`属性引用了上面配置的数据源,这样Hibernate就能使用Proxool连接池进行数据库操作。 5. 在`hibernateProperties`中,我们设置了`hibernate.dialect`为`MySQLDialect`,表示使用的是...

    Jsp使用Proxool连接池

    **JSP与Proxool连接池的深度解析** 在Java Web开发中,数据库连接管理是一项重要的任务,它直接影响到应用程序的性能和资源利用率。`JSP`(JavaServer Pages)作为动态网页技术,常常需要与数据库进行交互。为了...

Global site tag (gtag.js) - Google Analytics