PreparedStatement 를 사용한 Teacher 테이블 수정

JavaBeginner
지금 연습하기

소개

이 프로젝트에서는 JDBC 와 PreparedStatement 를 사용하여 MySQL 데이터베이스 테이블에서 데이터를 삭제하는 방법을 배우게 됩니다. 이 프로젝트는 보안 및 성능 향상을 위해 일반 SQL 문보다 PreparedStatement 를 사용하는 것의 이점을 보여주는 데 중점을 둡니다.

👀 미리보기

Project preview screenshot

🎯 과제

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

  • JDBC 를 사용하여 데이터베이스 연결을 설정하는 방법
  • DELETE 쿼리를 실행하기 위해 PreparedStatement 를 생성하는 방법
  • PreparedStatement 에서 매개변수를 설정하는 방법
  • DELETE 작업을 실행하고 결과를 처리하는 방법

🏆 성과

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

  • 데이터베이스 작업에 PreparedStatement 를 사용하는 것의 중요성을 이해합니다.
  • PreparedStatement 를 사용하여 MySQL 데이터베이스 테이블에서 데이터를 삭제하는 Java 프로그램을 구현합니다.
  • 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 teacher teacher/src teacher/lib teacher/bin
  2. JDBC 드라이버 패키지를 teacher/lib 디렉토리로 이동합니다:

    mv mysql-connector-java-8.0.21.jar ./teacher/lib
  3. JDBCDeleteByPreparedStatement.java 파일을 teacher/src 디렉토리로 이동합니다:

    mv JDBCDeleteByPreparedStatement.java ./teacher/src
✨ 솔루션 확인 및 연습

삭제 시스템 구현

이 단계에서는 'JDBCDeleteByPreparedStatement.java' 파일에서 대학 정보 삭제 시스템에 대한 코드를 구현합니다. 이 단계를 완료하려면 다음 단계를 따르세요.

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

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

         Connection connection = null;
         PreparedStatement preparedStatement = null;
         try {
             String url = "jdbc:mysql://localhost:3306/edusys";
             String username = "root";
             String password = "";
             // Establish the database connection
             connection = DriverManager.getConnection(url, username, password);
    
             // Create and prepare the delete SQL statement
             String deleteSQL = "DELETE FROM instructor WHERE name = ?";  // Using a placeholder for the parameter
             preparedStatement = connection.prepareStatement(deleteSQL);
             preparedStatement.setString(1, "Wu");  // Set the parameter value
    
             // Execute the delete operation
             int affectedRows = preparedStatement.executeUpdate();
             System.out.println("The delete operation affected " + affectedRows + " rows");
         } catch (SQLException e) {
             e.printStackTrace();
         } finally {
             // Close the connection and release resources
             try {
                 if (preparedStatement != null) {
                     preparedStatement.close();
                 }
                 if (connection != null) {
                     connection.close();
                 }
             } catch (SQLException e) {
                 e.printStackTrace();
             }
         }

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

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

✨ 솔루션 확인 및 연습

애플리케이션 실행

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

  1. 터미널을 열고 teacher 디렉토리로 이동합니다:

    cd ~/project/teacher
  2. Java 파일을 컴파일합니다:

    javac -d bin/ src/JDBCDeleteByPreparedStatement.java
  3. 애플리케이션을 실행합니다:

    java -cp bin/:lib/mysql-connector-java-8.0.21.jar JDBCDeleteByPreparedStatement

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

The delete operation affected 1 rows

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

✨ 솔루션 확인 및 연습

요약

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