使用Java检查MySQL数据库中已存在的用户时出错
在注册时,我尝试了一些代码来检查用户是否已经存在于数据库中。但是我得到了这样的错误。我做错了什么 我正在使用Netbeans 8.2、ApacheTomcat和MySQL数据库XAMPP 这是我的registration.jsp页面 注册JSP页面 身体{ 背景颜色:浅蓝色; } WGTMRNEW{ 宽度:153px; } 函数validateForm{ alertUser注册成功; 返回true; } 登记 请填写此表格以创建帐户 Z ID 名字 姓 邮件ID 暗语 已经注册了!!使用Java检查MySQL数据库中已存在的用户时出错,java,mysql,jsp,Java,Mysql,Jsp,在注册时,我尝试了一些代码来检查用户是否已经存在于数据库中。但是我得到了这样的错误。我做错了什么 我正在使用Netbeans 8.2、ApacheTomcat和MySQL数据库XAMPP 这是我的registration.jsp页面 注册JSP页面 身体{ 背景颜色:浅蓝色; } WGTMRNEW{ 宽度:153px; } 函数validateForm{ alertUser注册成功; 返回true; } 登记 请填写此表格以创建帐户 Z ID 名字 姓 邮件ID 暗语 已经注册了!! 使用tr
使用try catch block。它会起作用。您需要首先检查用户输入的zid是否已存在或未使用select查询,然后如果用户存在,只需发出警报,否则在db中插入记录,您的代码如下所示:
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dmsqms","root", "");
Statement st = con.createStatement();
String sql = "SELECT * FROM dmsmembers WHERE zid=?";//getting username
PreparedStatement ps=con.prepareStatement(sql);
//setting value for ?
ps.setString(1,zid);
ResultSet rs = ps.executeQuery();
//checking if record with zid exist if yes do below
if(rs.next()){
//put alert here
out.println("<script type=\"text/javascript\">");
out.println("alert('User Already Exists');");
out.println("</script>");
}else{
//if zid doesn't exist insert new record
int i = st.executeUpdate("insert into dmsmembers(zid, first_name, last_name, mailid, department, division, location, pass, regdate) values ('" + zid + "','" + fname + "','" + lname + "','" + email + "','" + department + "','" + division + "','" + location + "','" + pwd + "', CURDATE())");
if (i > 0) {
//response.sendRedirect("loginJSP.jsp");
//insert successfull alert message and redirect
out.println("<script type=\"text/javascript\">");
out.println("alert('Registration Successfull!');");
out.println("location='loginJSP.jsp';");
out.println("</script>");
} else {
//not inserted have some error print here
}
}
} catch(Exception e){
//print error if any
e.printStackTrace();
}
您忘记添加错误并指出错误发生的位置请发布错误日志从逻辑上定义您的表中是否已经存在用户?我添加了错误日志。当他/她点击注册页面中的提交按钮时,请检查注册。然后警报应该生成,因为用户已经存在于数据库中。您的上述代码为我工作。非常感谢你,亚尔。但我的问题是,当我点击注册页面中的提交按钮时,会生成两个警报,一个是用户注册成功,另一个是用户已经存在。我试图在注册时输入重复条目,并单击提交,然后用户注册成功生成警报。我知道我正在输入重复的zid,但未插入数据库,然后在用户已存在后生成警报。请检查我在上面发布的registration.jsp页面。不要在这里使用javascript。您可以将您的警报代码直接放在registrationJSPScript.jsp页面中,即:在其他部分。我已在此处成功添加用户注册警报,但未起作用:如果我>0{//session.setAttributeuserid,user;response.sendRedirectloginJSP.jsp;//out.printRegistration Successfull!+;}其他{//response.sendRedirectlogin.jsp;out.printlnalert'user registed Successfull';}检查上面的代码,我已经在if部分添加了警报,例如:if i>0{。它应该可以工作。我在if>0:-%>alertUser中这样写,成功注册了!!!;window.location=loginJSP.jsp;