数据库连接池的问题,连接池对象为静态变量有问题么

05-05-17 jkevin021
tomcat 数据库连接池的问题,连接池对象为静态变量有问题么?

package db;

import java.sql.*;

import javax.sql.*;

import java.util.*;

import javax.naming.*;

public class dbconnect

{

private static DataSource ds = null;

//

public static Connection openConnection() throws Exception

{

//// if ( ds == null ){

Context initCtx = new InitialContext();

if(initCtx==null) throw new Exception("没有匹配的环境");

Context ctx = (Context) initCtx.lookup("java:comp/env");

Object obj = (Object) ctx.lookup("jdbc/SqlServerDB");

javax.sql.DataSource ds = (javax.sql.DataSource)obj;

//}

return ds.getConnection();

}

这样会不会因为ds没有释放而耗资源呀?但加上 if ( ds == null ){判断后tomcat会报错?这是怎么回事呀

banq
2005-05-19 11:48
ds在用完释放,你现在是在开始没用就判断。

数据库连接池在知道ds.close后,就将连接放回pool中供下次使用,资源管理由Pool实现,无需你担心,你只要注意用完即关闭就可以。

猜你喜欢