Java 使用准备好的语句登录Servlet
我试图找出以下代码中的错误:Java 使用准备好的语句登录Servlet,java,servlets,Java,Servlets,我试图找出以下代码中的错误: public void service(HttpServletRequest request, HttpServletResponse response){ try{ user1 = request.getParameter("nameLog"); pass1 = request.getParameter("passLog"); String userid = null;
public void service(HttpServletRequest request, HttpServletResponse response){
try{
user1 = request.getParameter("nameLog");
pass1 = request.getParameter("passLog");
String userid = null;
String passdb = null;
String query = "select user, pass from login where `user` = ? and `pass`=?";
PreparedStatement pst = conn.prepareStatement(query);
ResultSet rs = pst.executeQuery();
pst.setString(1, user1);
pst.setString(2, pass1);
while(rs.next()){
userid = rs.getString("user1");
passdb = rs.getString("pass1");
pst.executeQuery();
}
if(userid.equals(user1)&& passdb.equals(pass1)){
response.sendRedirect("/WebContent/login/Main.html");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
我尝试登录到我的应用程序数据库列名为user和pass,但出现错误:
java.sql.SQLException: No value specified for parameter 1
在这一排
ResultSet rs = pst.executeQuery();
如何消除此错误并登录到我的页面
谢谢订购事宜!在调用executeQuery之前,需要传递参数,如下所示:
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, user1);
pst.setString(2, pass1);
ResultSet rs = pst.executeQuery();
秩序很重要!在调用executeQuery之前,需要传递参数,如下所示:
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, user1);
pst.setString(2, pass1);
ResultSet rs = pst.executeQuery();
您正在设置值之前执行查询。应该是:
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, user1);
pst.setString(2, pass1);
ResultSet rs = pst.executeQuery();
您正在设置值之前执行查询。应该是:
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, user1);
pst.setString(2, pass1);
ResultSet rs = pst.executeQuery();
我们的差距只有一秒,而我的差距只有一秒,还没投票给你们;我们的差距只有一秒,而我的差距只有一秒,还没投票给你们;