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) 展开
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) 展开
5个回答
展开全部
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 />希望能对你有帮助。
好像有点复杂了
你可以给我发信息(在百度上)
我明天也会上百度的
我们可以讨论一下
记录已被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 />希望能对你有帮助。
好像有点复杂了
你可以给我发信息(在百度上)
我明天也会上百度的
我们可以讨论一下
展开全部
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
user是关键字,错误鸟
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好复杂啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你得把后台提示的错误贴出来啊,这样别人才好分析原因嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询