728x90
반응형
학생은 학번과 생년월일로 로그인을 한다. 그러므로 교수가 미리 입력을 해야지 로그인이 가능하다.
로그인
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 stuLoginMethod {
// Field
private Connection conn;
private Scanner scanner = new Scanner(System.in);
private Score stu = new Score();
// Constructor
public stuLoginMethod() {
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 stuLogin() {
int chance = 0;
while (chance < 3) { // 3번 틀리면 프로그램 종료
System.out.print("학번 : ");
String scannerNo = scanner.nextLine(); // 아이디 입력
System.out.print("생년월일 : ");
String scannerBirth = scanner.nextLine(); // 비밀번호 입력
try {
String sql = "" + "SELECT stuNo, stuBirth "
+ "FROM students "
+ "WHERE stuNo=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, scannerNo);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
stu.setStuNo(rs.getString("stuNo"));
stu.setStuBirth(rs.getString("stuBirth"));
if(scannerNo.equals(stu.getStuNo())) { // 아이디가 일치하는지 확인
if(scannerBirth.equals(stu.getStuBirth())) { // 비밀번호가 일치하는지 확인
System.out.println("로그인 성공");
stuMethod stu = new stuMethod();
stu.stuSearch(rs.getString("stuNo")); // 아이디와 비밀번호가 일치하면 교수 메인메뉴로 이동
}
}
else {
System.out.println("일치하지 않습니다."); // 로그인 실패 메시지 출력
}
}
chance ++;
} 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);
}
}
로그인 성공하면 바로 조회가 된다.
조회
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 stuMethod {
// Field
private Connection conn;
private Score stu = new Score();
// Constructor
public stuMethod() {
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 stuSearch(String stuNo) {
try {
String sql = "" + "SELECT stuName, stuNo, stuBirth, kor, mat, eng, sum, sum/3, grade "
+ "FROM students "
+ "WHERE stuNo=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, stuNo);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
stu.setStuName(rs.getString("stuName"));
stu.setStuNo(rs.getString("stuNo"));
stu.setStuBirth(rs.getString("stuBirth"));
stu.setKor(rs.getInt("kor"));
stu.setMat(rs.getInt("mat"));
stu.setEng(rs.getInt("eng"));
stu.setSum(rs.getInt("sum"));
stu.setGrade(rs.getString("grade"));
System.out.println();
System.out.println("[ " + stuNo + " 학생 ]");
System.out.println("이름 : " + stu.getStuName());
System.out.println("학번 : " + stu.getStuNo());
System.out.println("생년월일 : " + stu.getStuBirth());
System.out.println("국어 : " + stu.getKor());
System.out.println("수학 : " + stu.getMat());
System.out.println("영어 : " + stu.getEng());
System.out.println("합 : " + stu.getSum());
System.out.println("평균 : " + stu.getSum() / 3);
System.out.println("등급 : " + stu.getGrade());
System.out.println();
}
} 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] 성적 관리 프로그램 - 4 입력 / 조회 / 수정 / 삭제 / 전체 삭제 / (이름순, 성적순, 학번순) 집계표 (1) | 2023.08.12 |
| [JAVA] 성적 관리 프로그램 - 3 교수 로그인 / 회원가입 (0) | 2023.08.11 |
| [JAVA] 성적 관리 프로그램 - 2 DB 테이블 구성 (1) | 2023.08.10 |
| [JAVA] 자바 성적 관리 프로그램 만들기 - 1 개요 (0) | 2023.07.27 |