tomcat5.5配置的连接池中
链接怎么关闭不了呢? 关闭链接代码如下
public void dbClose()
{
try {
rs.close();
stmt.close();
conn.close();
}catch (SQLException e)
{
System.out.println(e);
}
if (rs != null) System.out.println("rs exist");
else System.out.println("rs closed");
if (stmt != null) System.out.println("stmt exist");
else System.out.println("stmt closed");
if (conn != null) System.out.println("conn exist");
else System.out.println("conn closed");
}
链接怎么关闭不了呢? 关闭链接代码如下
public void dbClose()
{
try {
rs.close();
stmt.close();
conn.close();
}catch (SQLException e)
{
System.out.println(e);
}
if (rs != null) System.out.println("rs exist");
else System.out.println("rs closed");
if (stmt != null) System.out.println("stmt exist");
else System.out.println("stmt closed");
if (conn != null) System.out.println("conn exist");
else System.out.println("conn closed");
}
{
public DataSource ds=null;
public Connection conn=null;
public Statement stmt=null;
public ResultSet rs=null;
public SqlConn() throws SQLException
{
getStatement();
}
public Statement getStatement() throws SQLException
{
try
{
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sqlserver");
if (ds != null)
{
conn = ds.getConnection();
}
}catch(Exception e)
{
e.printStackTrace();
}
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
return stmt;
} public ResultSet getResultset(String sql) throws SQLException
{
//stmt=getStatement();
rs = stmt.executeQuery(sql);
return rs;
} public int executeSql(String sql) throws SQLException
{
//stmt=getStatement();
int rs = stmt.executeUpdate(sql); return rs;
} public void dbClose()
{
//System.out.println("dbclose");
try {
rs.close();
stmt.close();
conn.close();
}catch (SQLException e)
{
System.out.println(e);
}
if (rs != null) System.out.println("rs exist");
else System.out.println("rs closed");
if (stmt != null) System.out.println("stmt exist");
else System.out.println("stmt closed");
if (conn != null) System.out.println("conn exist");
else System.out.println("conn closed");
}
}
每次调用 这个dbClose方法的时候,控制台都答应出... exist
java.lang.NullPointerException
at ssh.SqlConn.getStatement(SqlConn.java:46)
at ssh.SqlConn.<init>(SqlConn.java:25)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
}
catch (SQLException e) {
e.printStackTrace();
}
try {
if (cs != null) {
cs.close();
cs = null;
}
}
catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null) {
con.close();
con = null;
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
空指针最好解决,楼主细心再找一下
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
else
System.out.println("随便打点东西");
就可以看到了至于这个为什么为空,应该是看连接池的配置了呵呵不知道我猜的对不对