https://www.notion.so/JDBC-MVC-1e4b46ed481e8027aaf1c2baf263f2dc
package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class MemberDAO {
// 전체 회원 목록을 조회하는 메서드 (현재는 미구현 상태)
private ArrayList<MemberDTO> selectAll(MemberDTO dto) {
return null; // 나중에 전체 조회 로직을 구현할 수 있음
}
// 특정 회원을 ID와 비밀번호로 조회하는 메서드 (로그인 용도)
public MemberDTO selectOne(MemberDTO dto) {
MemberDTO data = null; // 조회된 회원 정보를 담을 DTO
// JDBC 드라이버 및 DB 접속 정보
final String driverName = "com.mysql.cj.jdbc.Driver";
final String url = "jdbc:mysql://localhost:3306/DB명";
final String userName = "root";
final String password = "0000";
// 로그인 조건에 맞는 회원을 조회하는 SQL
final String sql = "SELECT * FROM MEMBER WHERE MEMBER_ID=? AND MEMBER_PASSWORD=?";
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 1. 드라이버 로드
Class.forName(driverName);
// 2. DB 연결
conn = DriverManager.getConnection(url, userName, password);
// 3. SQL 준비
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getMember_id()); // 1번 물음표에 아이디 바인딩
pstmt.setString(2, dto.getMember_password()); // 2번 물음표에 비밀번호 바인딩
// 4. SQL 실행 및 결과 처리
ResultSet rs = pstmt.executeQuery();
if (rs.next()) { // 결과가 존재하면 DTO에 데이터 저장
data = new MemberDTO();
data.setMember_id(rs.getString("MEMBER_ID"));
data.setMember_password(rs.getString("MEMBER_PASSWORD"));
data.setMember_name(rs.getString("MEMBER_NAME"));
}
return data; // 결과가 없으면 null 반환
} catch (Exception e) {
// 예외 발생 시에도 data 반환 (null 또는 값)
return data;
} finally {
// 사용한 리소스 정리 (예외 발생 시에도 실행됨)
try {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace(); // 리소스 정리 중 예외 발생 시 출력
}
}
}
}
package view;
import java.util.Scanner;
import model.MemberDTO;
public class View {
private Scanner sc;
public View() {
this.sc=new Scanner(System.in);
}
public void printMenuLogin() {
System.out.println("1.이름변경");
System.out.println("2.회원탈퇴");
System.out.println("3.글작성");
System.out.println("4.글선택");
System.out.println("5.글삭제");
System.out.println("6.로그아웃");
}
public void printMenuLogout() {
System.out.println("7.회원가입");
System.out.println("8.로그인");
System.out.println("9.목록출력");
System.out.println("10.검색");
System.out.println("0.프로그램 종료");
}
public int inputAction() {
return sc.nextInt();
}
public MemberDTO inputMemberDTO() {
System.out.print("아이디>> ");
String mid=sc.next();
System.out.print("비밀번호>> ");
String password=sc.next();
// 빈 MemberDTO에 객체 생성
MemberDTO memberDTO=new MemberDTO();
memberDTO.setMember_id(mid);
memberDTO.setMember_password(password);
memberDTO.setMember_name(name);
return memberDTO;
}
public MemberDTO login() {
System.out.print("아이디>> ");
String mid=sc.next();
System.out.print("비밀번호>> ");
String password=sc.next();
MemberDTO memberDTO=new MemberDTO();
memberDTO.setMember_id(mid);
memberDTO.setMember_password(password);
return memberDTO;
}
public String inputName() {
System.out.print("이름>> ");
String name=sc.next();
return name;
}
}