使用JSP检查数据库中是否已存在电子邮件ID

时间:2016-05-25 11:54:14

标签: java mysql jsp

我希望在注册时不要多次使用特定的电子邮件ID。这是我的代码:

if(request.getParameter("btn1")!=null)
  {
      String unm=request.getParameter("nm");
      String em=request.getParameter("email");
      String pwd=request.getParameter("pass");
      Connect c1=new Connect();
       String q="insert into register(name,email,password) values('"+unm+"','"+em+"','"+pwd+"');";
    int rs=c1.DMLExecuter(q);
    if(rs>0)
    %>
    <script>
        alert("You are registered now. Please login to continue.");
    </script>

我该怎么做才能检查电子邮件ID是否被使用了两次?

1 个答案:

答案 0 :(得分:1)

  1. 确保您的电子邮件字段是唯一的,例如通过相应地调整DDL(这将使数据库确保电子邮件地址是唯一的)。或者,可以将电子邮件字段设为主键:

    CREATE TABLE register(
        ...
        EMAIL VARCHAR(50) NOT NULL UNIQUE,
        ...
    )
    
  2. 在代码中,在插入之前,检查该ID的现有电子邮件的数量:

    long existingCount = ...
    String countQuery = "SELECT COUNT(1) FROM register WHERE email = ?"
    
  3. 使用request.getParameter("email")的值运行此查询。 结果应该是一个数字,告诉您使用该电子邮件的现有用户的数量。

    假设计数已存储在existingCount变量中:

    if(existingCount == 0) {
        //Put here the code to insert the new user as shown in your question...
    } else {
    %>
        <script>
            alert("You are already registered. Login or choose a different email");
        </script>
    <%
    }
    

    请注意我的sql使用了绑定变量,请使用预备语句