PreparedStatement 를 사용하여 교사 급여 조회

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 PreparedStatement 를 사용하여 MySQL 데이터베이스를 쿼리하는 방법을 JDBC (Java Database Connectivity) 를 사용하여 배우게 됩니다. 목표는 edusys 데이터베이스의 instructor 테이블에서 급여가 6000 이상인 강사의 이름과 급여를 검색하는 것입니다.

👀 미리보기

JDBC project preview image

🎯 과제

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

  • JDBC 를 사용하여 데이터베이스 연결을 설정하는 방법
  • 매개변수 자리 표시자를 사용하여 PreparedStatement 를 생성하는 방법
  • 쿼리를 실행하고 결과 집합을 처리하는 방법
  • 예외를 처리하고 리소스를 적절하게 닫는 방법

🏆 성과

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

  • JDBC 의 기본 사항과 MySQL 데이터베이스와 상호 작용하는 방법을 이해합니다.
  • PreparedStatement 를 사용하여 매개변수가 있는 SQL 쿼리를 실행하는 Java 코드를 작성합니다.
  • JDBC 를 사용하여 데이터베이스에서 데이터를 검색하고 처리합니다.
  • JDBC 애플리케이션에서 오류 처리 및 리소스 관리를 구현합니다.

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/salary
    cd /home/labex/project/salary
    
  2. 프로젝트에 필요한 하위 디렉토리를 생성합니다:

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

JDBC 드라이버 및 Java 파일 이동

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

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

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

    mv /home/labex/project/JDBCQueryByPreparedStatement.java /home/labex/project/salary/src
    

쿼리 시스템 구현

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

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

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

         try {
             String url = "jdbc:mysql://localhost:3306/edusys";
             String username = "root";
             String password = "";
             // Establish database connection
             Connection connection = DriverManager.getConnection(url, username, password);
    
             // Prepare SQL statement with parameter placeholder
             String sql = "SELECT name, salary FROM instructor WHERE salary > ?";
             PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
             // Set the parameter value
             preparedStatement.setDouble(1, 6000);
    
             // Execute the query
             ResultSet resultSet = preparedStatement.executeQuery();
    
             // Loop through the result set
             while (resultSet.next()) {
                 String name = resultSet.getString("name");
                 double salary = resultSet.getDouble("salary");
                 System.out.println(name + " " + salary);
             }
    
             // Close resources
             resultSet.close();
             preparedStatement.close();
             connection.close();
         } catch (SQLException e) {
             e.printStackTrace();
         }
    

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

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

애플리케이션 실행

이 마지막 단계에서는 애플리케이션을 실행합니다.

  1. Java 파일 컴파일:
javac -d bin/ src/JDBCQueryByPreparedStatement.java
  1. 애플리케이션 실행:
java -cp bin/:lib/mysql-connector-java-8.0.21.jar JDBCQueryByPreparedStatement

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

Srinivasan 65000.0
Wu 90000.0
Mozart 40000.0
Einstein 95000.0
El Said 60000.0
Gold 87000.0
Katz 75000.0
Califieri 62000.0
Singh 80000.0
Crick 72000.0
Brandt 92000.0
Kim 80000.0

축하합니다! 프로젝트를 성공적으로 완료했습니다.

요약

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

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습