此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【echoyyff】截止到2008-07-10 13:47:37的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
楼主【echoyyff】截止到2008-07-10 13:47:37的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
解决方案 »
- ibatis框架报错
- struts+jdon+hibernate框架 现在应用的如何?企业用的广不?该不该深究?
- 关于CA认证的问题
- web.xml的注释问题
- java天下 javaw.zhan.cn.yahoo.com 值得一看
- 关于spring抛出异常后通知的问题?
- jsf+EJB3.0开发的系统,当多用户操作时发生数据库锁表问题
- 用set path = %path%;会覆盖原来的用户变量?
- java 读取 xml 文件
- eclipse使用jdbc连接orcl报错ORA-12505
- java中操作webservice的Client端如何判断远端服务是否在线
- 请教一个hibernate+proxool连接oracle的问题
可是dBQueryBean哪里有问题呢import java.sql.Connection;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;/**
* 数据库连接池管理类
*/
public class DBConnectionManager {
static private DBConnectionManager instance;//唯一数据库连接池管理实例类
//static private int clients; //客户连接数
private Vector<DSConfigBean> drivers = new Vector<DSConfigBean>();//驱动信息
private Hashtable<String, DBConnectionPool> pools=new Hashtable<String, DBConnectionPool>();//连接池
/**
* 实例化管理类
*/
public DBConnectionManager() {
this.init();
}
/**
* 得到唯一实例管理类
* @return
*/
static synchronized public DBConnectionManager getInstance(){
if(instance==null)
{
instance=new DBConnectionManager();
}
return instance;
}
/**
* 释放连接
* @param name
* @param con
*/
public void freeConnection(String name, Connection con){
DBConnectionPool pool=pools.get(name);//根据关键名字得到连接池
if(pool!=null)
pool.freeConnection(con);//释放连接
}
/**
* 得到一个连接根据连接池的名字name
* @param name
* @return
*/
public Connection getConnection(String name){
DBConnectionPool pool=null;
Connection con=null;
pool=pools.get(name);//从名字中获取连接池
System.out.println("pool is :"+pool);
con=pool.getConnection();//从选定的连接池中获得连接
if(con!=null)
{System.out.println("得到连接...");
System.out.println(con);
}
else System.out.println("得不到连接...");
return con;
}
/**
* 得到一个连接,根据连接池的名字和等待时间
* @param name
* @param time
* @return
*/
public Connection getConnection(String name, long timeout){
DBConnectionPool pool=null;
Connection con=null;
pool=pools.get(name);//从名字中获取连接池
con=pool.getConnection(timeout);//从选定的连接池中获得连接
System.out.println("得到连接...");
return con;
}
/**
* 释放所有连接
*/
public synchronized void release(){
Enumeration<DBConnectionPool> allpools=pools.elements();
while(allpools.hasMoreElements())
{
DBConnectionPool pool=allpools.nextElement();
if(pool!=null)pool.release();
}
pools.clear();
}
/**
* 创建连接池
* @param props
*/
private void createPools(DSConfigBean dsb)
{
DBConnectionPool dbpool = new DBConnectionPool();
dbpool.setName(dsb.getName());
dbpool.setDriver(dsb.getDriver());
dbpool.setUrl(dsb.getUrl());
dbpool.setUser(dsb.getUsername());
dbpool.setPassword(dsb.getPassword());
dbpool.setMaxConn(dsb.getMaxconn());
System.out.println("ioio:"+dsb.getMaxconn());
pools.put(dsb.getName(), dbpool);
System.out.println("pools :"+pools);
}
/**
* 初始化连接池的参数
*/
private void init()
{
//加载驱动程序
this.loadDrivers();
//创建连接池
Iterator<DSConfigBean> alldriver=drivers.iterator();
while(alldriver.hasNext())
{
this.createPools(alldriver.next());
System.out.println("创建连接池");
}
System.out.println("创建连接池完毕...");
}
/**
* 加载驱动程序
* @param props
*/
private void loadDrivers()
{
ParseDSConfig pd=new ParseDSConfig();
//读取数据库配置文件
drivers=pd.readConfigInfo("DBconfig.xml");
System.out.println("drivers is :"+drivers);
System.out.println("加载驱动程序...");
}
}
下面是dBQueryBean类import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;public class DBQueryBean implements Serializable { // 得到唯一实例
DBConnectionManager connectionMagr = DBConnectionManager.getInstance(); public void mySQLQuery(String dbname, String sql) { //得到连接
//String ServerName="tsus_tracking";//从上下文得到你要访问的数据库的名字
Connection MySQLConn = (Connection) connectionMagr
.getConnection(dbname); //使用
try {
Statement stmt = (Statement) MySQLConn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(2));
} System.out.println("success");
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("sorry can't create Connection!");
} finally {
// 使用完毕
connectionMagr.freeConnection(dbname, MySQLConn);//释放,但并未断开连接
} } //oracle 查询 public void oracleQuery(String servname, String sql) { //得到连接
//String ServerName="orcl";//从上下文得到你要访问的数据库的名字
System.out.println(servname);
Connection con = (Connection) connectionMagr.getConnection(servname);
System.out.println(con); //使用
try {
Statement stmt = (Statement) con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1));
} System.out.println("success");
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("sorry can't create Connection!");
} finally {
// 使用完毕
connectionMagr.freeConnection(servname, con);//释放,但并未断开连接
}
}}