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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.