executequery方法出错

packagebean;importjava.sql.*;publicclassPersonDAOImplimplementsPersonDAO{publicboolea... package bean;

import java.sql.*;

public class PersonDAOImpl implements PersonDAO
{

public boolean isLogin(PersonVo pv) throws Exception
{

boolean flag = false;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT name FROM user WHERE id=? AND pass=?";
DataBaseConnection dbc = null;
try
{
dbc= new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1,pv.getId());
pstmt.setString(2,pv.getPass());
rs = pstmt.executeQuery();
if(rs.next())
{
flag=true;
}
rs.close();
pstmt.close();

}
catch (Exception e)
{
throw new Exception("登录错误");
}
finally
{
dbc.close();
}
return flag;
}
}
我经过排除之后,发现是executequery()方法出错,但我实在想不通为什么。。。求高手帮忙,留下QQ也可以,我把项目给你,帮我看一下,很简单,就是一个登录,连注册都没有。
我的QQ是:274510887
我只截取了一部分报错,太多了,贴不出来,这是第一部分
HTTP Status 500 -

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.Exception: 登录错误
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
展开
 我来答
残霰
2008-08-24 · TA获得超过1819个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:654万
展开全部
executeQuery() 返回的是ResultSet();
记录已被delete,当然就没有结果返回
delete时不用它,用execute()就可以.

还有
其实不需要用executeQuery()方法,用execute()就可以了啊

如果你的SQL 语句是诸如update,insert的更新语句,应该用statement的execute()方法,如果用的是statement的executeQuery()就会出现上诉问题,原因:<br />executeQuery<br />ResultSet executeQuery(String sql)<br /> throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 <br /><br />参数:<br />sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句 <br />返回:<br />包含给定查询所生成数据的 ResultSet 对象;永远不能为 null <br />抛出: <br />SQLException - 如果发生数据库访问错误或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容<br /><br />简单说查询语句用executeQuery(sql), 更新语句用execute()。所以你只要将executeQuery(update_sql)这些代码改成execute(update_sql)就可以了。<br />希望能对你有帮助。

好像有点复杂了
你可以给我发信息(在百度上)
我明天也会上百度的
我们可以讨论一下
秀乞群群
推荐于2017-09-18 · TA获得超过19万个赞
知道顶级答主
回答量:6.7万
采纳率:91%
帮助的人:2.4亿
展开全部
package vote;
import java.sql.*;

public class DBConnect {
  //设置连接数据库的参数
  private String user = "root";
  private String password = "199051";
  //MySQL的JDBC驱动程序
  String sDBDriver = "org.gjt.mm.mysql.Driver";
  //连接数据库
  String sConnStr = "jdbc:mysql://localhost:3306/vote?user&password";
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;  
  public DBConnect() {
    try {
  //加载数据库驱动程序
      Class.forName(sDBDriver);
      //建立连接
  conn = DriverManager.getConnection(sConnStr);
    }
catch (Exception e) {
      System.out.println("DBConnect():" + e.getMessage());
    }
  }
  //查询
  public ResultSet executeQuery(String sql) {    
try {
  stmt = conn.createStatement();
  rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
      System.out.println("sql.executeQuery:" + ex.getMessage());
    }
return rs;
  }
  //更新  
  public boolean executeUpdate(String sql){
    try{
  stmt = conn.createStatement();
  stmt.executeUpdate(sql);
  return true;
}catch (SQLException ex) {
      System.out.println("sql.executeUpdate:" + ex.getMessage());
      return false;
    }
  }  
  //关闭数据库的连接  
  public void close() throws Exception{
   conn.close();
   stmt.close();
  }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
puderty
2008-08-24 · TA获得超过3530个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:0
展开全部
user是关键字,错误鸟
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bf22ca12bf
2008-08-24 · TA获得超过150个赞
知道答主
回答量:137
采纳率:0%
帮助的人:47.6万
展开全部
好复杂啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyjcocol
2008-08-24 · 超过16用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:54.6万
展开全部
你得把后台提示的错误贴出来啊,这样别人才好分析原因嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式