如何将值插入 mySQL 中的记录

问题描述 投票:0回答:0

我正在尝试进行电子邮件订阅,用户在其中输入他们的电子邮件,mySQL 中的“空”字段将更新为提供的电子邮件地址。这是我到目前为止所拥有的:

public boolean subscribeMember(MemberDTO memberDTO) {
    boolean isSubscribe = false;
    try {
     getConnection();
     pstmt = conn.prepareStatement("SELECT EMAIL FROM MEMBER WHERE MEMBER_ID = ?");
     pstmt.setString(1, memberDTO.getMemberId());
     rs = pstmt.executeQuery();
            
         if (rs == null) {
     pstmt = conn.prepareStatement("UPDATE MEMBER SET EMAIL = ? WHERE MEMBER_ID = ?");
         pstmt.setString(1, memberDTO.getEmail());
     pstmt.setString(2, memberDTO.getMemberId());
     pstmt.executeUpdate();
     isSubscribe = true;
     }
            
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
     getClose();
    }
    return isSubscribe;
    }

这就是我对 subscribePro 的看法:

<%
    request.setCharacterEncoding("utf-8");
    
    MemberDTO memberDTO = new MemberDTO();
    memberDTO.setMemberId(request.getParameter("memberId"));
    memberDTO.setEmail(request.getParameter("email"));
        
    if (MemberDAO.getInstance().subscribeMember(memberDTO)){
%>
    <script>
            alert ("Thanks for joining our mailing list!");
        location.href = "main.jsp";
    </script>
<%
    }
    else{
%>
        <script>
            alert ("You are already on our mailing list!");
        location.href = "main.jsp";
    </script>
<%
    }
%>

即使 mySQL 中的 email 字段为 null,它仍然运行 else。我应该修理什么?

if (rs == null) {
     pstmt = conn.prepareStatement("UPDATE MEMBER SET EMAIL = ? WHERE MEMBER_ID = ?");

对于这部分我试过“if (rs.next())”

我也尝试过(插入成员值?WHERE MEMBER_ID =?);

java mysql jsp
© www.soinside.com 2019 - 2024. All rights reserved.