대학교 정보 쿼리 시스템

JavaBeginner
지금 연습하기

소개

이 프로젝트에서는 Java 와 MySQL 을 사용하여 대학교 정보 조회 시스템을 만드는 방법을 배우게 됩니다. 이 프로젝트는 MySQL 데이터베이스 설정, Java 를 사용하여 데이터베이스에 연결, 학생, 강좌 및 강사에 대한 정보를 쿼리하는 과정을 안내합니다.

👀 미리보기

University query system preview

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • MySQL 서비스를 시작하고 데이터베이스를 가져오는 방법
  • Java 프로젝트 디렉토리를 생성하고 파일을 구성하는 방법
  • Java 와 JDBC 드라이버를 사용하여 MySQL 데이터베이스에 연결하는 방법
  • 데이터베이스에서 정보를 쿼리하고 결과를 표시하는 Java 코드 작성 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • Java 애플리케이션을 MySQL 데이터베이스에 연결하는 기본 사항 이해
  • SQL 쿼리를 실행하고 데이터를 검색하는 Java 코드 작성
  • 대학교 데이터베이스에서 데이터를 표시할 수 있는 간단한 정보 조회 시스템 개발

MySQL 서비스 시작 및 데이터베이스 임포트

이 단계에서는 MySQL 서비스를 시작하고 edusys.sql 데이터베이스를 가져오는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:

  1. MySQL 서비스를 시작합니다. 터미널에서 다음 명령을 실행하여 수행할 수 있습니다:

    sudo service mysql start
  2. edusys.sql 데이터베이스를 MySQL 로 가져옵니다. 터미널에서 다음 명령을 실행하여 수행할 수 있습니다:

    mysql -u root < /home/labex/project/edusys.sql

이 명령은 root 사용자를 사용하여 edusys.sql 데이터베이스를 MySQL 로 가져옵니다.

✨ 솔루션 확인 및 연습

Java 프로젝트 디렉토리 생성

이 단계에서는 Java 프로젝트 디렉토리를 생성하는 방법을 배우게 됩니다. 아래 단계를 따라 이 단계를 완료하세요:

  1. Java 프로젝트를 위한 새 디렉토리를 생성합니다:

    mkdir /home/labex/project/demo
    cd /home/labex/project/demo
  2. 프로젝트에 필요한 하위 디렉토리를 생성합니다:

    mkdir src lib bin
    • src 디렉토리에는 Java 소스 코드 파일이 포함됩니다.
    • lib 디렉토리에는 프로젝트에서 사용하는 외부 라이브러리가 포함됩니다.
    • bin 디렉토리에는 컴파일된 Java 클래스 파일이 포함됩니다.
✨ 솔루션 확인 및 연습

JDBC 드라이버 및 Java 파일 이동

이 단계에서는 JDBC 드라이버와 Querysys.java 파일을 적절한 디렉토리로 이동하는 방법을 배우게 됩니다. 아래 단계를 따라 이 단계를 완료하세요:

  1. JDBC 드라이버를 lib 디렉토리로 이동합니다:

    mv /home/labex/project/mysql-connector-java-8.0.21.jar /home/labex/project/demo/lib
  2. Querysys.java 파일을 src 디렉토리로 이동합니다:

    mv /home/labex/project/Querysys.java /home/labex/project/demo/src
✨ 솔루션 확인 및 연습

쿼리 시스템 구현

이 단계에서는 Querysys.java 파일에서 대학 정보 쿼리 시스템에 대한 코드를 구현합니다. 아래 단계를 따라 이 단계를 완료하세요:

  1. 텍스트 편집기에서 Querysys.java 파일을 엽니다.

  2. executeQuery() 메서드에 다음 코드를 추가합니다:

        public static void executeQuery() {
         // Write code here
         Connection connection = null;
         Statement stmt = null;
         ResultSet rs = null;
         try{
             // Write code here
             Class.forName("com.mysql.jdbc.Driver");
    
             String url = "jdbc:mysql://localhost:3306/edusys";
             String username = "root";
             String password = "";
             connection = DriverManager.getConnection(url, username, password);
    
             Scanner scanner = new Scanner(System.in);
    
             System.out.println("Enter the table to query:");
             System.out.println("1. student");
             System.out.println("2. course");
             System.out.println("3. instructor");
    
             int option = scanner.nextInt();
    
             String sql = "";
             switch (option) {
                 case 1:
                     sql = "SELECT ID, name, dept_name FROM student";
                     break;
                 case 2:
                     sql = "SELECT course_id, title, dept_name FROM course";
                     break;
                 case 3:
                     sql = "SELECT ID, name, dept_name FROM instructor";
                     break;
                 default:
                     System.out.println("Invalid option");
             }
    
             stmt = connection.createStatement();
             rs = stmt.executeQuery(sql);
    
             while (rs.next()) {
                 String column1 = rs.getString(1);
                 String column2 = rs.getString(2);
                 String column3 = rs.getString(3);
    
                 System.out.println(column1 + "\t" + column2 + "\t" + column3);
             }
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
         } catch (SQLException e) {
             e.printStackTrace();
         } catch (Exception e) {
             e.printStackTrace();
         } finally{
             try {
                 if(rs != null)rs.close();
                 if(stmt != null)stmt.close();
                 if(connection != null)connection.close();
             } catch (SQLException e) {
                 e.printStackTrace();
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
     }

    이 코드는 MySQL 데이터베이스에 연결하고, 사용자에게 쿼리할 테이블을 선택하도록 요청하며, 적절한 SQL 쿼리를 실행하고, 결과를 콘솔에 출력합니다.

  3. Querysys.java 파일을 저장합니다.

✨ 솔루션 확인 및 연습

프로그램 컴파일 및 실행

이 단계에서는 Querysys.java 프로그램을 컴파일하고 실행합니다. 아래 단계를 따라 이 단계를 완료하세요:

  1. Querysys.java 파일을 컴파일합니다:

    javac -d /home/labex/project/demo/bin/ /home/labex/project/demo/src/Querysys.java

    이 명령어는 Querysys.java 파일을 컴파일하고 컴파일된 클래스 파일을 bin 디렉토리에 배치합니다.

  2. Querysys 프로그램을 실행합니다:

    java -cp /home/labex/project/demo/bin/:/home/labex/project/demo/lib/mysql-connector-java-8.0.21.jar Querysys

    이 명령어는 bin 디렉토리의 컴파일된 클래스 파일과 lib 디렉토리의 JDBC 드라이버를 사용하여 Querysys 프로그램을 실행합니다.

    다음과 같은 출력을 볼 수 있습니다:

    Enter the table to query:
    1. student
    2. course
    3. instructor
    2
    BIO-101 Intro. to Biology       Biology
    BIO-301 Genetics        Biology
    BIO-399 Computational Biology   Biology
    CS-101  Intro. to Computer Science      Comp. Sci.
    CS-190  Game Design     Comp. Sci.
    CS-315  Robotics        Comp. Sci.
    CS-319  Image Processing        Comp. Sci.
    CS-347  Database System Concepts        Comp. Sci.
    EE-181  Intro. to Digital Systems       Elec. Eng.
    FIN-201 Investment Banking      Finance
    HIS-351 World History   History
    MU-199  Music Video Production  Music
    PHY-101 Physical Principles     Physics

축하합니다! 대학 정보 쿼리 시스템을 성공적으로 구현했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.