๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB BackEnd/JSP

ํšŒ์› ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

์„ค๊ณ„๊ฐ€ ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ํ† ๋Œ€๋กœ JAVA ์†Œ์Šค์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด์ฃผ๋ฉด๋œ๋‹ค. 

 

UserDTO ํด๋ž˜์Šค ์„ค์ •

1) ํŒŒ์ผ ์ƒ์„ฑ

  • Java Resources ํด๋” > src > user ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ , 
  • user ํŒจํ‚ค์ง€ > UserDTO.java ํด๋ž˜์Šค, UserDAO ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

  • ์ƒ์„ฑํ•œ UserDTO.java ํŒŒ์ผ ์•ˆ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค.
package user;

public class UserDTO {
	private String userID;
	private String userPassword;
	private String userEmail;
	private String userEmailHash;
	private Boolean userEmailChecked;
	
}

 

2) ๋ณ€์ˆ˜์˜ getter, setter ์ƒ์„ฑ

์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค ํด๋ฆญ > Source > "Generate getters and setters"๋ฅผ ํด๋ฆญํ•ด

๋ชจ๋“  ๋ณ€์ˆ˜์˜ getter์™€ setter๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

 

3) ๋ณ€์ˆ˜์˜ ์ƒ์„ฑ์ž ์ƒ์„ฑ

  • ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค ํด๋ฆญ > Source > "Generate constructor using fields"๋ฅผ ํด๋ฆญํ•ด ๋ชจ๋“  ๋ณ€์ˆ˜์˜ ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

  • ์•„๋ฌด๊ฒƒ๋„ ๋‹ด์ง€์•Š๋Š” ์ƒ์„ฑ์ž ๋˜ํ•œ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. => ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
public UserDTO() {}

 

UserDAO ํด๋ž˜์Šค ์„ค์ •

1) login ํ•จ์ˆ˜ ์„ค์ •

package user;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import util.DatabaseUtil;

public class UserDAO {
	public int login(String userID, String userPassword) {
		String SQL = "SELECT userPassword FROM USER WHERE userID=?";
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			conn = DatabaseUtil.getConnection();
			pstmt = conn.prepareStatement(SQL);
			pstmt.setString(1, userID);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				if(rs.getString(1).equals(userPassword)) {
					return 1; // ๋กœ๊ทธ์ธ ์„ฑ๊ณต
				} 
				else {
					return 0; // ๋น„๋ฐ€๋ฒˆํ˜ธ ํ‹€๋ฆผ
				}
			}
			return -1; // ์•„์ด๋”” ์—†์Œ
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {if (conn != null) conn.close();} catch (Exception e2) {e2.printStackTrace();}
			try {if (pstmt != null) pstmt.close();} catch (Exception e2) {e2.printStackTrace();}
			try {if (rs != null) rs.close();} catch (Exception e2) {e2.printStackTrace();}
		}
		return -1; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜
	}
}

 

2) join ํ•จ์ˆ˜ ์„ค์ •

public int join(UserDTO user) {
    String SQL = "INSERT INTO USER VALUES (?, ?, ?, ?, false);";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        conn = DatabaseUtil.getConnection();
        pstmt = conn.prepareStatement(SQL);
        pstmt.setString(1, user.getUserID());
        pstmt.setString(1, user.getUserPassword());
        pstmt.setString(1, user.getUserEmail());
        pstmt.setString(1, user.getUserEmailHash());
        return pstmt.executeUpdate();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {if (conn != null) conn.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (pstmt != null) pstmt.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (rs != null) rs.close();} catch (Exception e2) {e2.printStackTrace();}
    }
    return -1; // ํšŒ์›๊ฐ€์ž… ์‹คํŒจ
}

 

3) getUserEmailChecked ํ•จ์ˆ˜ ์„ค์ •

public boolean getUserEmailChecked(String userID) {
    String SQL = "SELECT userEmailChecked FROM USER WHERE userID = ?";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        conn = DatabaseUtil.getConnection();
        pstmt = conn.prepareStatement(SQL);
        pstmt.setString(1, userID);
        rs = pstmt.executeQuery();
        if (rs.next()) {
            return rs.getBoolean(1);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {if (conn != null) conn.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (pstmt != null) pstmt.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (rs != null) rs.close();} catch (Exception e2) {e2.printStackTrace();}
    }
    return false; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜
}

 

4) getUserEmail ํ•จ์ˆ˜ ์„ค์ •

public String getUserEmail(String userID) {
    String SQL = "SELECT userEmail FROM USER WHERE userID = ?";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        conn = DatabaseUtil.getConnection();
        pstmt = conn.prepareStatement(SQL);
        pstmt.setString(1, userID);
        rs = pstmt.executeQuery();
        if (rs.next()) {
            return rs.getString(1);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {if (conn != null) conn.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (pstmt != null) pstmt.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (rs != null) rs.close();} catch (Exception e2) {e2.printStackTrace();}
    }
    return null; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜
}

 

5) setUserEmailChecked ํ•จ์ˆ˜ ์„ค์ •

setUserEmailChecked ํ•จ์ˆ˜ : ์ด๋ฉ”์ผ ๊ฒ€์ฆ์„ ํ†ตํ•ด์„œ ์ธ์ฆ์ด ์™„๋ฃŒ๊ฐ€ ๋˜๋„๋ก ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜

public boolean setUserEmailChecked(String userID) {
    String SQL = "UPDATE USER SET userEmailChecked = true WHERE userID = ?";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        conn = DatabaseUtil.getConnection();
        pstmt = conn.prepareStatement(SQL);
        pstmt.setString(1, userID);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {if (conn != null) conn.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (pstmt != null) pstmt.close();} catch (Exception e2) {e2.printStackTrace();}
        try {if (rs != null) rs.close();} catch (Exception e2) {e2.printStackTrace();}
    }
    return false; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜
}