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

🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- JDBC 를 사용하여 데이터베이스 연결을 설정하는 방법
- 매개변수 자리 표시자를 사용하여 PreparedStatement 를 생성하는 방법
- 쿼리를 실행하고 결과 집합을 처리하는 방법
- 예외를 처리하고 리소스를 적절하게 닫는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- JDBC 의 기본 사항과 MySQL 데이터베이스와 상호 작용하는 방법을 이해합니다.
- PreparedStatement 를 사용하여 매개변수가 있는 SQL 쿼리를 실행하는 Java 코드를 작성합니다.
- JDBC 를 사용하여 데이터베이스에서 데이터를 검색하고 처리합니다.
- JDBC 애플리케이션에서 오류 처리 및 리소스 관리를 구현합니다.
MySQL 서비스 시작 및 데이터베이스 임포트
이 단계에서는 MySQL 서비스를 시작하고 edusys.sql 데이터베이스를 가져오는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:
MySQL 서비스를 시작합니다. 터미널에서 다음 명령을 실행하여 수행할 수 있습니다:
sudo service mysql startedusys.sql데이터베이스를 MySQL 로 가져옵니다. 터미널에서 다음 명령을 실행하여 수행할 수 있습니다:mysql -u root < /home/labex/project/edusys.sql
이 명령은 root 사용자를 사용하여 edusys.sql 데이터베이스를 MySQL 로 가져옵니다.
Java 프로젝트 디렉토리 생성
이 단계에서는 Java 프로젝트 디렉토리를 생성하는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:
Java 프로젝트를 위한 새 디렉토리를 생성합니다:
mkdir /home/labex/project/salary cd /home/labex/project/salary프로젝트에 필요한 하위 디렉토리를 생성합니다:
mkdir src lib binsrc디렉토리에는 Java 소스 코드 파일이 포함됩니다.lib디렉토리에는 프로젝트에서 사용하는 외부 라이브러리가 포함됩니다.bin디렉토리에는 컴파일된 Java 클래스 파일이 포함됩니다.
JDBC 드라이버 및 Java 파일 이동
이 단계에서는 JDBC 드라이버와 JDBCQueryByPreparedStatement.java 파일을 적절한 디렉토리로 이동하는 방법을 배우게 됩니다. 이 단계를 완료하려면 아래 단계를 따르세요:
JDBC 드라이버를
lib디렉토리로 이동합니다:mv /home/labex/project/mysql-connector-java-8.0.21.jar /home/labex/project/salary/libJDBCQueryByPreparedStatement.java파일을src디렉토리로 이동합니다:mv /home/labex/project/JDBCQueryByPreparedStatement.java /home/labex/project/salary/src
쿼리 시스템 구현
이 단계에서는 JDBCQueryByPreparedStatement.java 파일에서 대학 정보 쿼리 시스템의 코드를 구현합니다. 이 단계를 완료하려면 아래 단계를 따르세요:
텍스트 편집기에서
JDBCQueryByPreparedStatement.java파일을 엽니다.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 쿼리를 실행하고, 결과를 콘솔에 출력합니다.
JDBCQueryByPreparedStatement.java파일을 저장합니다.
애플리케이션 실행
이 마지막 단계에서는 애플리케이션을 실행합니다.
- Java 파일 컴파일:
javac -d bin/ src/JDBCQueryByPreparedStatement.java
- 애플리케이션 실행:
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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



