请问以下代码应该怎么调呀?String bookName="";
String bookAbstract="";
String author="";
String bookId=request.getParameter("bookId");
Connection conn=Conn.getConn();
Statement stmt=conn.createStatement();
ResultSet rs=null;
try{
String sql="select * from book_info where book_id="+bookId;
rs=stmt.executeQuery(sql);
if(rs.next()){
bookName=rs.getString("bookName");
bookAbstract=rs.getString("book_abstract");
author=rs.getString("author");
}
}catch(SQLException e){
e.getStackTrace();
}finally{
rs.close();////////报错指向这里的
stmt.close();
conn.close();
}错误信息:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    close方法记得try catch,关闭失败也许就是不用关闭,异常不处理就好了
    }finally{
    try {
    rs.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
      

  2.   

     你这代码问题比较多啊
      首先写的比较乱啊
       把model层代码写到业务层了啊
       
         finally{
           if(rs!=null)
              rs.close();
           if(stmt!=null)
              stmt.close();
          if(conn!=null)
              conn.close();
         }
       
       
        还有rs.getString("bookName"); 数据库里面的字段是这个bookName吗。不是的话,你自己改下。
       rs.close();////////报错指向这里的 
        可能rs是null吧