728x90
반응형
회원가입
- 아이디 / 비밀번호 / 이름 / 이메일 / 반 / 나이 입력받음
- 회원가입 완료하면 DB에 저장
로그인
- 아이디와 비밀번호를 입력받아 DB에 있는 정보와 일치하는지 확인
- 입력 기회는 3번
- 일치한다면 "로그인 성공" 출력 후 proMethod 실행
package project_score;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class proLoginMethod {
// Field
private Connection conn;
private Scanner scanner = new Scanner(System.in);
private Professor pro = new Professor();
// Constructor
public proLoginMethod() {
try {
// JDBC Driver 등록
Class.forName("oracle.jdbc.OracleDriver");
// 연결하기
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl", "java", "oracle");
} catch(Exception e) {
e.printStackTrace();
exit();
}
}
// Method
public void proLogin() {
int chance = 0;
while (chance < 3) { // 3번 틀리면 프로그램 종료
System.out.print("ID : ");
String scannerId = scanner.nextLine(); // 아이디 입력
System.out.print("PW : ");
String scannerPw = scanner.nextLine(); // 비밀번호 입력
try {
String sql = "" + "SELECT proId, proPw "
+ "FROM professors "
+ "WHERE proId=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, scannerId);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
pro.setProId(rs.getString("proId"));
pro.setProPw(rs.getString("proPw"));
if(scannerId.equals(pro.getProId())) { // 아이디가 일치하는지 확인
if(scannerPw.equals(pro.getProPw())) { // 비밀번호가 일치하는지 확인
System.out.println("로그인 성공");
proMethod pro = new proMethod();
pro.mainMenu(); // 아이디와 비밀번호가 일치하면 교수 메인메뉴로 이동
}
}
else {
System.out.println("일치하지 않습니다."); // 로그인 실패 메시지 출력
}
}
chance ++;
} catch(Exception e) {
e.printStackTrace();
exit();
}
}
LoginMenu loginMenu = new LoginMenu();
loginMenu.LoginMainMenu();
}
public void proJoin() {
System.out.println("[교수 회원가입]");
System.out.print("ID : ");
pro.setProId(scanner.nextLine());
System.out.print("PW : ");
pro.setProPw(scanner.nextLine());
System.out.print("이름 : ");
pro.setProName(scanner.nextLine());
System.out.print("이메일 : ");
pro.setProEmail(scanner.nextLine());
System.out.print("반 : ");
pro.setProClass(scanner.nextLine());
System.out.print("나이 : ");
pro.setProAge(scanner.nextInt());
scanner.nextLine();
try {
// 매개변수화된 SQL문 작성
String sql = "" + "INSERT INTO professors (proId, proPw, proName, proEmail, proClass, proAge) "
+ "VALUES(?, ?, ?, ?, ?, ?)";
// PreparedStatement 얻기 및 값 지정
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, pro.getProId());
pstmt.setString(2, pro.getProPw());
pstmt.setString(3, pro.getProName());
pstmt.setString(4, pro.getProEmail());
pstmt.setString(5, pro.getProClass());
pstmt.setInt(6, pro.getProAge());
// SQL문 실행
pstmt.executeUpdate();
// PreparedStatement 닫기
pstmt.close();
} catch(Exception e) {
e.printStackTrace();
exit();
}
LoginMenu loginMenu = new LoginMenu();
loginMenu.LoginMainMenu();
}
public void exit() {
if(conn != null) {
try {
conn.close();
} catch(SQLException e) {}
}
System.out.println("종료합니다.");
System.exit(0);
}
}


728x90
반응형
'Project > 성적 관리 프로그램' 카테고리의 다른 글
| [JAVA] 성적 관리 프로그램 - 통합 (파일 첨부) (0) | 2023.08.14 |
|---|---|
| [JAVA] 성적 관리 프로그램 - 5 학생 로그인 / 조회 (2) | 2023.08.13 |
| [JAVA] 성적 관리 프로그램 - 4 입력 / 조회 / 수정 / 삭제 / 전체 삭제 / (이름순, 성적순, 학번순) 집계표 (1) | 2023.08.12 |
| [JAVA] 성적 관리 프로그램 - 2 DB 테이블 구성 (1) | 2023.08.10 |
| [JAVA] 자바 성적 관리 프로그램 만들기 - 1 개요 (0) | 2023.07.27 |