我以前连接是没有任何问题的,今天不知道是中了什么邪,老是出问题。
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);
这一句产生了错误,可是为什么重启之后就会没事了呢。
搞不懂
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);
这一句产生了错误,可是为什么重启之后就会没事了呢。
搞不懂
报这个错误,这是什么错误啊.
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)
出现这个错误之后我再刷新就没有用了,本来刷新就可以的,可是现在刷新都没有用了,就是打不开到底是怎么回事啊.各位大哥帮帮忙啊,解决了问题马上给分.
不关闭的话,时间长了不关机内存就会挤爆,所以就荡掉了。
因为重起之后内存会清空,所以有可以正常执行。
你执行数据库的语句因该是在try{}catch{}中的吧?
一定要在后面加上finally来关闭它finally {
try {
rs.close();
rs = null;
ps.close();
ps = null;
conn.close();
conn = null;
} catch (Exception e) {
System.out.println(e);
}
}
检查一下关闭顺序
或者是你多写了一个conn.close();
因为你已经把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;
}
}
finally{
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(DBConnection.getInstance().getConnection()!=null&&!DBConnection.getInstance().getConnection().isClosed()){
DBConnection.closeConnection();
}
}这是我的关闭语句,不知道是不是正确的,为什么还报那种错误呢
---------------------------------------------------------------
你的程序是不是不止一次调用数据库?
正常的做法是每执行一次操作都要进行如下步骤:
[开启数据库连接]--[执行语句]--[关闭连接]你上面的错误提示,我猜测是因为:
你第一次数据库操作时:[开启数据库连接]--[执行语句]--[关闭连接] //一切正常
你第二次数据库操作时:[没有开启数据库]--[执行语句]--[关闭连接] //所以就抱错了