###关于weblogic数据库连接池的疑问
写了一个用来连接数据库的bean。
环境:weblogic8+sql server2000
其中,weblogic,配置好了Connection pools和Datasources(aaaJNDI)
请大家看看有没有问题,主要是释放资源的部分,不大清楚。
(catch()语句里面省掉了)
package com;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import com.*;
public class sqlconnect
{
private Context ctx = null;
private DataSource ds =null;
private Connection conn = null;
private Statement stmt=null;
ResultSet rs = null;
public PreparedStatement pstat=null;
public sqlconnect()
{
try{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("aaaJNDI");
}
catch(Exception ex) {... }
}
public ResultSet executeQuery(String sql) throws SQLException
{ rs = null;
try
{
if(conn == null) //这句话有必要吗?
conn =(Connection)ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) { ... }
return rs;
}
public void executeUpdate(String sql) throws SQLException
{
stmt=null;
rs = null;
try
{
if(conn == null)
conn =(Connection)ds.getConnection();
stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex) { ... }
}
public PreparedStatement prepareStatement(String sql) throws SQLException
{
pstat = null;
try
{
if(conn == null)
conn =(Connection)ds.getConnection();
pstat= conn.prepareStatement(sql);
}
catch(SQLException ex) { ...}
return pstat;
}
public void close()
{
if(rs!=null)
if(rs!=null)
try{ rs.close();}
catch(Exception ignore){};
if(stmt!=null)
try{ stmt.close();}
catch(Exception ignore){};
if(conn!=null)
try{ conn.close();}
catch(Exception ignore){};
conn = null;//这句话,有必要吗?
}
}
当conn close()后,应该和null状态是不同的。
对于资源的释放,
weblogic服务器对连接池的管理,它做到了哪些?程序里面还需要手动做哪些?
疑问:1.执行close()后,是否需要conn = null?
2.在executeQuery和executeUpdate方法里,开始时
if(conn == null)
conn =(Connection)ds.getConnection();
if的判断有作用(有必要吗?)
问题点数:0、回复次数:2Top
1 楼jeasoyang(主机家园)回复于 2004-05-03 22:40:17 得分 0
CSDN自己人的乐园
shcsdn.35sw.com
bbs.35sw.com
www.35sw.com
Top
2 楼babyfishlh(babyfishlh)回复于 2004-05-04 23:27:26 得分 0
顶一下!
没人回答啊,都去过节了,。。。。Top




