永发信息网

JSP链接mysql登陆验证失败是哪里错了?在线等

答案:2  悬赏:50  手机版
解决时间 2021-01-03 12:03
  • 提问者网友:原来太熟悉了会陌生
  • 2021-01-02 23:46



<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("txtname");
String password=request.getParameter("txtpwd");

Class.forName("org.gjt.mm.mysql.Driver");//加载驱动程序类型
String url="jdbc:mysql://localhost:3306/newone?user=root&password=123&useUnicode=true&characterEncoding=utf-8";//设置连接数据库参数
Connection conn=DriverManager.getConnection(url);//创建数据库连接
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from users where name='"+name+"' and password='"+password+"'";
System.out.print(sql);
int result=stmt.executeUpdate(sql);//执行SQL语句
if(result!=0){
response.sendRedirect("gldenlu.jsp");//执行插入成功跳转
}else{
response.sendRedirect("addBooks.jsp");//执行插入失败跳转
}
%>

最佳答案
  • 五星知识达人网友:煞尾
  • 2021-01-06 23:37
int result=stmt.executeUpdate(sql);//执行SQL语句
方法执行错了。
sql语句修改成这样,就对了,自己测试
String sql="select
count(*)
from users where name='"+name+"' and password='"+password+"'";
参考apiResultSet    executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。    int    executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
全部回答
  • 1楼网友:轻熟杀无赦
  • 2021-01-07 01:12
问题应该在这: if(rs.next()) { username = rs.getstring(1) ; //------------------------ flag = true ; } 改成: while(rs.next()){ if(username == rs.getstring(1)) flag = true; } 你的if(rs.next())只是判断rs是否为null。按你的sql查处的name。虽然有值,但是你已经.next()了。所以你在rs.getstring(1)就娶不到值。username = rs.getstring(1);username就为null.如果想这样写,就要在加一个 rs.previous();把游标在移回前一单元。 我想应该是这个问题。 ================================= 回复楼下的,我说的怎么不对了?有什么毛病么?如果rs为空,他肯定不会运行,直接报异常了。我说的根本也不是那内容啊。我解释的是 结果集 游标的问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯