try{
request.setCharacterEncoding("utf-8"); //中文解析(必须有)
String name =request.getParameter("usename");
String pwd =request.getParameter("pwd");
boolean bSuccess=false;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/employee", "root", "123456");
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from salary where name='" +name+ "'");
if(bSuccess){
response.sendRedirect("TitleBar.jsp"); //当Mysql数据库中存在此用户,则跳转到"TitleBar.jsp"页面
rs.close();
stmt.close();
conn.close();
} if(!bSuccess){
out.println("用户或者密码错误 ");
}
}
}catch(ClassNotFoundException e){
out.println("驱动程序异常,加载错误!<br>");
out.println(e.getMessage());
} catch(SQLException e){
out.println("数据库连接或者SQL查询异常!<br>");
out.println(e.getMessage());
}catch(Exception e){
out.println(e.getMessage());
}
其主要的功能是验证是否有用户,但是最终输出:用户或者密码错误! 我疑惑的是,我确认数据源连接没有错(Mysql数据库),并且也建了salary表,里面有用户和密码两项,应该可以连接进去。当我把sql语句换成select * from salary 时但又可以返回ture。用ResultSet rs=stmt.executeQuery(sql);之后rs怎么变空了?很纳闷啊,求大侠们相助啊~~~mysql数据库
request.setCharacterEncoding("utf-8"); //中文解析(必须有)
String name =request.getParameter("usename");
String pwd =request.getParameter("pwd");
boolean bSuccess=false;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/employee", "root", "123456");
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from salary where name='" +name+ "'");
if(bSuccess){
response.sendRedirect("TitleBar.jsp"); //当Mysql数据库中存在此用户,则跳转到"TitleBar.jsp"页面
rs.close();
stmt.close();
conn.close();
} if(!bSuccess){
out.println("用户或者密码错误 ");
}
}
}catch(ClassNotFoundException e){
out.println("驱动程序异常,加载错误!<br>");
out.println(e.getMessage());
} catch(SQLException e){
out.println("数据库连接或者SQL查询异常!<br>");
out.println(e.getMessage());
}catch(Exception e){
out.println(e.getMessage());
}
其主要的功能是验证是否有用户,但是最终输出:用户或者密码错误! 我疑惑的是,我确认数据源连接没有错(Mysql数据库),并且也建了salary表,里面有用户和密码两项,应该可以连接进去。当我把sql语句换成select * from salary 时但又可以返回ture。用ResultSet rs=stmt.executeQuery(sql);之后rs怎么变空了?很纳闷啊,求大侠们相助啊~~~mysql数据库
则证明你没有变量为name这个用户!又或者是你name没有娶到值!
调试一下、或者直接System.out.println(name);看看name的值就知道了!
楼主你敢告诉我这个Bsuccess是干什么的吗?就是总是提示用户名或者密码错误的?boolean bSuccess=false;if(!bSuccess){
out.println("用户或者密码错误 ");
}是不是应该
if( rs.next()){
//有该用户
}else{
out.println("用户或者密码错误 ");
}
如果差到了用户才关闭链接、
那一直都是没查到用户你链接岂不是暴涨?需要在finally块里关闭链接。
或者查询到数据改变bSuccess值
if(rs.next())bSuccess = true;