永发信息网

jsp连接数据库读取一次后连接关闭

答案:5  悬赏:80  手机版
解决时间 2021-04-05 01:43
  • 提问者网友:不爱我么
  • 2021-04-04 12:16
读取一次数据库后接着读取第二次就出现如下异常:
javax.servlet.ServletException: java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseStatement.isClosed()Z
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.checkok_jsp._jspService(checkok_jsp.java:168)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

如何解决???谢谢!!

主要代码是:
public Connection getConnection()throws SQLException
{
if(connection==null||connection.isClosed())
{
connection=DriverManager.getConnection(url,"sa","");
}
return connection;
}

public Statement getStatement() throws SQLException
{
if(statement==null||statement.isClosed())
{
statement=getConnection().createStatement(); }
return statement;
}

public ResultSet getResult() throws SQLException
{
return getResult(sql);
}
public ResultSet getResult(String sql)throws SQLException
{
return getStatement().executeQuery(sql);
}
public int update()throws SQLException
{
return update(sql);
}
public int update(String sql)throws SQLException
{
return getStatement().executeUpdate(sql);
}
}
最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-04-04 12:51
你是不是在代码中将BaseStatement关闭了后又执行SQL语句了啊?

=========================================================

把你的DBbean.java贴出来看看.

=========================================================
这些代码没问题,调用它们的代码你也得贴出来.是调用的地方有问题吧.
全部回答
  • 1楼网友:平生事
  • 2021-04-04 16:08
getResult();的方法体是咋写里,你贴出来看看
  • 2楼网友:行路难
  • 2021-04-04 14:33
上面直接写着你将statement关闭了 你检查一下吧
  • 3楼网友:山君与见山
  • 2021-04-04 13:29
这还不简单啊,那你就执行两次sql语句啊,你执行完一次删除表操作后,将你的connection实例置为null,然后再用statement或者preparedstatement执行多一次sql语句。 然后就可以了。
  • 4楼网友:不想翻身的咸鱼
  • 2021-04-04 13:10
isClosed()是jdk6.0新增的。 驱动类旧的话,就没能实现。 解决办法就是去掉isclosed这个判断。直接关闭就好。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯