java.sql.SQLEXception:Connection reset

weilianpalisi 2012-04-14 01:18:08
//这个是我写的servlet~~~

package com.onelove;

import javax.servlet.http.*;
import java.sql.*;
import java.io.*;

public class Wel extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
//处理中文乱码
res.setContentType("text/html; charset=gbk");
PrintWriter pw = res.getWriter();

//==================分页功能=====================
int pageSize=3;//每页显示多少条记录
int pageNow=1;//希望显示第几页
int pageCount=0;//一共有多少页(计算)
int rowCount=0;//一共有多少条记录(查表)

//注册数据库驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//得到连接
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1434;databaseName=login","sa","sa");
//创建PreparedStatement
ps = con.prepareStatement("select count(*) from users");
rs = ps.executeQuery();
//得到rowCount的值
if(rs.next()){
rowCount=rs.getInt(1);
}
//计算pageCount的值
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
//得到Session
HttpSession hs = req.getSession(true);
hs.setMaxInactiveInterval(20);
String val = (String)hs.getAttribute("uname");
if(val==null){
res.sendRedirect("login");
}
pw.println("<body><CENTER>");
pw.println("<img src=imgs/1.GIF><br>");
pw.println("hello,wel<br>您的用户名:" + val + "<br>");
pw.println("<a href=login>返回重新登录</a><br>");

ps = con.prepareStatement("select top "+pageSize+" * from users where userId not in(select top "+(pageNow-1)*pageSize+" userId from users)");
rs = ps.executeQuery();

pw.println("<table border=1>");
pw.println("<tr><th>userId</th><th>userName</th><th>passwd</th><th>email</th><th>grade</th></tr>");
while(rs.next()){
pw.println("<tr>");
pw.println("<td>"+rs.getInt(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("<td>"+rs.getString(3)+"</td>");
pw.println("<td>"+rs.getString(4)+"</td>");
pw.println("<td>"+rs.getInt(5)+"</td>");
pw.println("</tr>");
}
pw.println("</table><br>");
pw.println("<a href=?>上一页</a>");
for(int i=1; i<5; i++){
pw.println("<a href=?>i</a>");
}
pw.println("<a href=?>下一页</a>");
pw.println("</CENTER></body>");
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(con!=null) con.close();
}catch(Exception e){
e.printStackTrace();
}

}

}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
sqlserver2005的驱动已经放在正确的目录下了,应该不是驱动的问题...
网上也搜了很多,但没找到解决的方案~求大神

以下是控制台信息java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC] Connection reset
at com.microsoft.jdbc.base.BaseExceptions.createException<Unknown Source>
at com.microsoft.jdbc.base.BaseExceptions.getException<Unknown Source>
.....
at com.onelove.Wel.doGet<Wel.java:53> 说的是53行出现错误了,编译是通过了的= =!
...全文
287 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weilianpalisi 2012-04-14
  • 打赏
  • 举报
回复
哈哈,我自己解决了~~是PrepareStatement的问题,我自己阅读了API,发现,有些驱动可能不支持预编译,就会抛出一些SQLException,将PrepareStatement换成Statement就没问题了,(*^__^*) 嘻嘻……~~~整了一晚上,我晕~

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧