executequery方法出错

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)

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 />希望能对你有帮助。

好像有点复杂了
你可以给我发信息(在百度上)
我明天也会上百度的
我们可以讨论一下
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-18
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();
  }
}

第2个回答  2008-08-24
user是关键字,错误鸟本回答被提问者采纳
第3个回答  2008-08-24
好复杂啊
第4个回答  2008-08-24
你得把后台提示的错误贴出来啊,这样别人才好分析原因嘛
相似回答