poolman下載 http://groups.google.com/group/vjame/files
在WEB項目中的配置:
第一步:文件配置
首先你要把jar包放到 /項目名稱/web-inf/lib 下,poolman帶的jar包很多,其中required就5個.
1. poolman.jar poolman的核心包.
2. jdbc2_0-stdext.jar 提供poolman連接池繼承的JDBC接口
3. jaxp.jar 用於讀XML配置文件
4. crimson.jar 同上
5. log4j.jar 記日誌的
其它的一般用不到.
poolman.xml是連接池的配置文件, 放到 /項目名稱/web-inf/classes 下
第二步:配置XML文件
給一個最簡單必要的配置文件內容
<?xml version="1.0" encoding="UTF-8"?>
<poolman>
<management-mode>local</management-mode>
<datasource>
數據庫的名字
<dbname>SIPO</dbname>
jndi的名字
<jndiName>sipo</jndiName>
驅動字符串
<driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
連接字符串 <url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SIPO</url>
數據庫登錄用戶名
<username>sipo</username>
數據庫登錄密碼
<password>sipo</password>
日誌文件的文件名(含路徑)
<logFile>sipo.log</logFile>
是否可用預執行
<poolPreparedStatements>true</poolPreparedStatements>
初始化後連接個數
<initialConnections>5</initialConnections>
最小連接個數
<minimumSize>5</minimumSize>
最大連接個數
<maximumSize>200</maximumSize>
達到最大連接個數後是否可以再創建新的連接
<maximumSoft>true</maximumSoft>
XX秒後destory連接
<connectionTimeout>600</connectionTimeout>
在返回連接池前用戶可以保持XX秒
<userTimeout>12</userTimeout>
</datasource>
</poolman>
第三步:JAVA
在你的數據庫基類裏面這樣寫就可以了
import com.codestudio.sql.PoolMan;
import javax.sql.DataSource;
import java.sql.SQLException;
public class DbCtrl {
private Connection con;
private Statement st;
public void getConnection() throws ClassNotFoundException,
SQLException {
con = null;
DataSource ds = PoolMan.findDataSource("sipo");
con = ds.getConnection();
st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
}
在應用項目中的配置
第一步:新建java工程,創建數據庫表和錄入數據
第二步:: 導入所需要的jar包,以及配置poolman.xml
<?xml version="1.0" encoding="UTF-8"?>
<poolman>
<datasource>
<dbname>default</dbname>
<jndiName>default</jndiName>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/test</url>
<username>root</username>
<password>root</password>
<poolPreparedStatements>false</poolPreparedStatements>
<initialConnections>3</initialConnections>
<minimumSize>0</minimumSize>
<maximumSize>10</maximumSize>
<maximumSoft>true</maximumSoft>
<connectionTimeout>300</connectionTimeout>
<userTimeout>0</userTimeout>
<skimmerFrequency>300</skimmerFrequency>
<shrinkBy>10</shrinkBy>
<transactionTimeout>100</transactionTimeout>
<cacheEnabled>false</cacheEnabled>
<cacheSize>10</cacheSize>
<cacheRefreshInterval>120</cacheRefreshInterval>
<removeOnExceptions>false</removeOnExceptions>
</datasource>
</poolman>
第三步:創建數據庫操作類DbCtrl
package com.test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.codestudio.sql.PoolMan;
public class DbCtrl {
private static Connection con = null;
private static Statement st = null;
public static void getConnection() throws ClassNotFoundException, SQLException {
con = null;
DataSource ds = PoolMan.findDataSource("default");
con = ds.getConnection();
st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
public static void main(String arg[]) {
try {
DbCtrl.getConnection();
System.out.println(con);
ResultSet rs = st.executeQuery("select * from test");
while(rs.next()){
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.print(rs.getString(3));
System.out.print(rs.getString(4));
System.out.println(rs.getString(5));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
第四步: 運行結果
2009年1月5日 上午12時17分50秒 CST: default received null value for log file, using System.out
2009年1月5日 上午12時17分51秒 CST: PoolMan JDBCPool unable to locate a default JNDI provider, default DataSource not bound to JNDI: null
2009年1月5日 上午12時17分51秒 CST: PoolMan Local Pool Deployer: Created JDBC XA Connection Pool named: default
com.codestudio.sql.PoolManConnectionHandle@80d1ff
11111