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

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会报错?这是怎么回事呀

ds在用完释放,你现在是在开始没用就判断。

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