我以前连接是没有任何问题的,今天不知道是中了什么邪,老是出问题。
java.lang.NullPointerException
com.ttkd.service.shi.ShiManagerImpl.getShiInfo(ShiManagerImpl.java:70)
org.apache.jsp.pages.newindex_jsp._jspService(newindex_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)上面就是报的错,可是我重启了计算机之后,就没有任何问题了。但是,我一直刷这个页面,又会出现这个问题。
 driverClassName="net.sourceforge.jtds.jdbc.Driver";
    url="jdbc:jtds:sqlserver://localhost/wz";
    username="sa";
    password="sa";
         System.out.println("a3");
    Class.forName(driverClassName);
         System.out.println("a4");
    conn = DriverManager.getConnection(url,username,password);
         System.out.println("a5");这是我的连接语句,出这个问题的时候a5是打不出来的。也就是说
conn = DriverManager.getConnection(url,username,password);
这一句产生了错误,可是为什么重启之后就会没事了呢。
搞不懂

解决方案 »

  1.   

    Software caused connection abort: socket write error
    报这个错误,这是什么错误啊.
      

  2.   

    问题超级严重,我今天又开始刷新了,还是会出现那种问题,
    java.sql.SQLException: Connection closed
    net.sourceforge.jtds.jdbc.TdsConnection.checkClosed(TdsConnection.java:679)
    net.sourceforge.jtds.jdbc.TdsConnection.createStatement(TdsConnection.java:431)
    com.ttkd.service.shi.ShiManagerImpl.getShiInfo(ShiManagerImpl.java:77)
    org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    出现这个错误之后我再刷新就没有用了,本来刷新就可以的,可是现在刷新都没有用了,就是打不开到底是怎么回事啊.各位大哥帮帮忙啊,解决了问题马上给分.
      

  3.   

    有一步是每执行一次数据库操作就得执行一次的----关闭数据库连接
    不关闭的话,时间长了不关机内存就会挤爆,所以就荡掉了。
    因为重起之后内存会清空,所以有可以正常执行。
    你执行数据库的语句因该是在try{}catch{}中的吧?
    一定要在后面加上finally来关闭它finally {
             try {
    rs.close();
    rs = null;
    ps.close();
    ps = null;
    conn.close();
    conn = null;
    } catch (Exception e) {
            System.out.println(e);
    }
    }
      

  4.   

    Connection 关闭异常TdsConnection.java第679行
    检查一下关闭顺序
    或者是你多写了一个conn.close();
      

  5.   

    刚才试了一下,找到原因了。
    因为你已经把Connection关闭了
    在没有重新打开的情况下又启用Connection连接数据库
    所以。。建议:每执行一次数据库操作,都要在前后加一对连接和关闭。例如: public boolean select_1() {                Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs = null;         String s = "select * from pagination.personnel";
    int count = 0;
    try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(
    "JDBC:mysql://localhost:3306/test", "root", "root"); ps = conn.prepareStatement(s);
    rs = ps.executeQuery();
    if (rs.next()) {
    count++;
    } else {
    count = 0;
    }
    } catch (Exception e) {
    System.out.println(e);
    } finally {
    try {
    rs.close();
    rs = null;
    ps.close();
    ps = null;
    conn.close();
    conn = null;
    } catch (Exception e) {
    System.out.println(e);
    }
    }
    if (count > 0) {
    return true;
    } else {
    return false;
    }
    }
      

  6.   

    强烈支持KAKUKYOWU 要养成好的习惯,try{}catch(){}finnally{}
      

  7.   

    个人感觉,现在的J2EE容器,都带有连接池,把连接工作交给它,会省事得多,管理起来也方便!
      

  8.   


    finally{
        if(rs!=null){
             rs.close();
            }
        if(st!=null){
         st.close();
        }
    if(DBConnection.getInstance().getConnection()!=null&&!DBConnection.getInstance().getConnection().isClosed()){
    DBConnection.closeConnection();
        }

    }这是我的关闭语句,不知道是不是正确的,为什么还报那种错误呢
      

  9.   

    java.sql.SQLException: Connection closed
    ---------------------------------------------------------------
    你的程序是不是不止一次调用数据库?
    正常的做法是每执行一次操作都要进行如下步骤:
    [开启数据库连接]--[执行语句]--[关闭连接]你上面的错误提示,我猜测是因为:
    你第一次数据库操作时:[开启数据库连接]--[执行语句]--[关闭连接]        //一切正常
    你第二次数据库操作时:[没有开启数据库]--[执行语句]--[关闭连接]        //所以就抱错了