Я предполагаю, что проблема связана с тем, что вы не закрыли первый оператор, использованный для выбора, прежде чем пытаться создать другой оператор для вставки.Но есть лучший способ реализовать вашу логику, используя единственную вставку:
String sql = "INSERT INTO Register (name, email, mobile, password, confirm_password) ";
sql += "SELECT ?, ?, ?, ?, ? ";
sql += "WHERE NOT EXISTS (SELECT 1 FROM Register WHERE email = ?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, email);
ps.setString(3, mobile);
ps.setString(4, password);
ps.setString(5, conform_password);
ps.setString(6, email);
int i = ps.executeUpdate();
if (i == 0) {
System.out.println("Email already Exists Please Try with New Email");
}
else {
response.sendRedirect("index.html");
}
Если предложение существует вышеупомянутой вставки не удается, тогда ничего не должно быть вставлено, и количество строк DML, возвращаемое executeUpdate()
должно быть ноль.