ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jdbc
    JDBC 2021. 12. 16. 14:30

    오늘은 어제와 마찬가지로 실습을 했다.

    회원의 회원가입 (아이디 중복 확인) -> 로그인 -> 마이페이지 -> 비밀번호 변경 -> 회원정보 수정 -> 회원 탈퇴 -> 로그아웃까지!

     

    하나 더 알려주신 것은, finally를 적으면서 일일히 conn.close(); 등등을 적어주기 귀찮으니

     
    # try with resource
    - try문을 작성할 때 자원 객체를 소괄호 안에 전달하면 try블록이 끝날 때,
    자동으로 자원을 해제해 준다.
    - 자동으로 종료되는 자원은 반드시 AutoCloseable 인터페이스의 구현체여야 한다.
    이것을 사용하라는 것이었다. 확실히 편했다.
     
    @Override
    public boolean confirmId(String id) {
    boolean flag = false;
    String sql = "SELECT * FROM my_user WHERE user_id=?";
     
    try (
    Connection conn = ds.getConnection();
    PreparedStatement pstmt = conn.prepareStatement(sql)){
     
    pstmt.setString(1, id);
    ResultSet rs = pstmt.executeQuery();
    if(rs.next()) flag = true;
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return flag;
    }

     

    어려웠던 부분은, 회원가입을 할 때 아이디 중복인지 확인하는 부분이었는데,

     

    BoardDAO에다가

    @Override

     

    public int userCheck(String id, String pw) {
    int check = 0;
    String sql = "SELECT user_pw FROM my_user WHERE user_id=?";
    try(Connection conn = ds.getConnection();
    PreparedStatement pstmt = conn.prepareStatement(sql)){
    pstmt.setString(1, id);
    ResultSet rs = pstmt.executeQuery();
     
    if(rs.next()) {
    String dbPw = rs.getString("user_pw");
    //DB에서 user_pw를 뜯어와서 사용자가 입력한 String pw와 비교해서
    //일치하면 1, 불일치하면..0 이게!! 헷갈렸다.
    if(dbPw.equals(pw)) check = 1;
    else check = 0;
    }else {
    check = -1;
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return check;
    }
    해 주고, 

     

    <%@page import="kr.co.jsp.user.model.UserVO"%>
    <%@page import="kr.co.jsp.user.model.UserDAO"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    request.setCharacterEncoding("utf-8");
     
    String id = request.getParameter("id");
     
    UserDAO dao = UserDAO.getInstance();
     
    if(dao.confirmId(id)){ //아이디가 중복됨! %>
    <script>
    alert("아이디가 중복되었습니다.");
    history.back();
    </script>
     
    <% } else{ //아이디가 중복되지 않음!
    //회원 가입 처리가 들어가면 됩니다
    UserVO vo = new UserVO(
    id,
    request.getParameter("pw"),
    request.getParameter("name"),
    request.getParameter("email"),
    request.getParameter("address")
    );
    dao.insertUser(vo); %>
    <script>
    alert("회원가입을 환영합니다!");
    location.href="user_login.jsp";
    </script>
     
    <%}%>

     

    오늘도.. 실습이라 하루가 빨리 지나간 느낌이다.

    'JDBC' 카테고리의 다른 글

    jdbc  (0) 2021.12.15
    jdbc  (0) 2021.12.14
Designed by Tistory.