高分请教数据库连接池的实现方法,在线给分!! 好象一般介绍java书上都有这个~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 web server也可以设定连接池的。 package com.dickensi.bean.db;/** * <p>Title: Dickensi's home Page</p> * <p>Description: You are welcome</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: NEC PDAE</p> * @author Dickensi * @version 1.0 *///import oracle.jdbc.driver.OracleDriver;import java.sql.*;import java.util.*;import com.dickensi.env.EnvirementProvider;import com.dickensi.util.*;public class DBConnectionPool { private static String driver = EnvirementProvider.getProperty("db.driver"); private static String url = EnvirementProvider.getProperty("db.url"); private static Vector pool = new Vector(); private static String user = EnvirementProvider.getProperty("db.user"); private static String password = EnvirementProvider.getProperty("db.password"); private static int MAXCON = Integer.valueOf(EnvirementProvider.getProperty("db.poolnumber")).intValue(); static { try{ Class.forName(driver); LogWriter.trace("JDBC Driber loaded: " + driver); }catch(Exception e){ LogWriter.trace("JDBC Driver load failure!"); } newConnection(); } public DBConnectionPool() { } static private boolean newConnection(){ Connection con = null; while( pool.size()< MAXCON ) { try{ con = DriverManager.getConnection(url,user,password); } catch(Exception e){System.out.println("Database connect failure!");} pool.add(con); LogWriter.trace("Create a connection["+(pool.size()-1)+"]"+con.toString()); } return false; } static public Connection getConnection(){ if(pool.size() <= 0) { while(newConnection()); } Connection con = (Connection) pool.firstElement(); pool.remove(0); return con; } static public void realseConnection(Connection con){ try{ if(pool.size()<10){ pool.add(con); } else{con.close();} con = null; } catch(Exception e){} } static private void realeasePool(){ Connection con = null; for(int i=0;i<pool.size();i++) { con = (Connection)pool.get(i); try{ con.close(); } catch(Exception e){} } pool.clear(); } static public void getPoolInfo(){ for(int i =0;i<pool.size();i++) { System.out.println(""+i+pool.get(i).toString()); } } public static void main(String[] args) { DBConnectionPool.getPoolInfo(); LogWriter.trace(String.valueOf(DBConnectionPool.MAXCON)); Connection c = DBConnectionPool.getConnection(); DBConnectionPool.getPoolInfo(); DBConnectionPool.realseConnection(c); DBConnectionPool.getPoolInfo(); }}你要给private static String driver = EnvirementProvider.getProperty("db.driver"); private static String url = EnvirementProvider.getProperty("db.url"); private static Vector pool = new Vector(); private static String user = EnvirementProvider.getProperty("db.user"); private static String password = EnvirementProvider.getProperty("db.password"); private static int MAXCON = Integer.valueOf(EnvirementProvider.getProperty("db.poolnumber")).intValue();傅上具体的值! 还有一些东西要去掉!比如LogWriter.trace();...这里用了不少我开发的其他包! 建议你看看Apache的Common中的子项目Pooljakarta.apache.org 关键还是怎样自动维护你的连接,一般采用一个线程来维护。我自己写的就是,而且使用完Connection后,直接cn.close()关闭,而不像其他的需要放回连接池。 求教? 数据库操作时出现错误,COUNT 字段不正确或语法错误,帮忙看看 问一下,这里怎么会有两个线程》? 使用SWT设计的界面,怎样实现他每次打开的时候居于显示器的中间 在oracle9i里存韩文,有的字正常,有的字是乱码,谁见过? unsigned int 返回 long 为什么final数组也能改变值? 谁有候捷的think in java 的电子书阿?请 请问pdf文件如何打开? 如何在pb中录入word文档?????????????? Java Bean +JDBC-ODBC桥+Ms SqlServer7.0中文输入出错! 好烦的注册问题
* <p>Title: Dickensi's home Page</p>
* <p>Description: You are welcome</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: NEC PDAE</p>
* @author Dickensi
* @version 1.0
*///import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
import java.util.*;
import com.dickensi.env.EnvirementProvider;
import com.dickensi.util.*;public class DBConnectionPool { private static String driver = EnvirementProvider.getProperty("db.driver");
private static String url = EnvirementProvider.getProperty("db.url");
private static Vector pool = new Vector();
private static String user = EnvirementProvider.getProperty("db.user");
private static String password = EnvirementProvider.getProperty("db.password");
private static int MAXCON = Integer.valueOf(EnvirementProvider.getProperty("db.poolnumber")).intValue(); static {
try{
Class.forName(driver);
LogWriter.trace("JDBC Driber loaded: " + driver);
}catch(Exception e){
LogWriter.trace("JDBC Driver load failure!");
}
newConnection();
}
public DBConnectionPool() {
} static private boolean newConnection(){
Connection con = null;
while( pool.size()< MAXCON )
{
try{
con = DriverManager.getConnection(url,user,password);
}
catch(Exception e){System.out.println("Database connect failure!");}
pool.add(con);
LogWriter.trace("Create a connection["+(pool.size()-1)+"]"+con.toString());
}
return false;
} static public Connection getConnection(){
if(pool.size() <= 0)
{
while(newConnection());
}
Connection con = (Connection) pool.firstElement();
pool.remove(0);
return con;
} static public void realseConnection(Connection con){
try{
if(pool.size()<10){
pool.add(con);
}
else{con.close();}
con = null;
}
catch(Exception e){}
} static private void realeasePool(){
Connection con = null;
for(int i=0;i<pool.size();i++)
{
con = (Connection)pool.get(i);
try{
con.close();
}
catch(Exception e){}
}
pool.clear();
} static public void getPoolInfo(){
for(int i =0;i<pool.size();i++)
{
System.out.println(""+i+pool.get(i).toString());
}
} public static void main(String[] args) {
DBConnectionPool.getPoolInfo();
LogWriter.trace(String.valueOf(DBConnectionPool.MAXCON));
Connection c = DBConnectionPool.getConnection();
DBConnectionPool.getPoolInfo();
DBConnectionPool.realseConnection(c);
DBConnectionPool.getPoolInfo();
}
}你要给
private static String driver = EnvirementProvider.getProperty("db.driver");
private static String url = EnvirementProvider.getProperty("db.url");
private static Vector pool = new Vector();
private static String user = EnvirementProvider.getProperty("db.user");
private static String password = EnvirementProvider.getProperty("db.password");
private static int MAXCON = Integer.valueOf(EnvirementProvider.getProperty("db.poolnumber")).intValue();傅上具体的值!
比如LogWriter.trace();...
这里用了不少我开发的其他包!
jakarta.apache.org