본문 바로가기

Project/성적 관리 프로그램

[JAVA] 성적 관리 프로그램 - 5 학생 로그인 / 조회

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
반응형