プリペアドステートメントを使って教師の給与を照会する

MySQLBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、PreparedStatement を使用して MySQL データベースを照会するための JDBC(Java Database Connectivity)の使い方を学びます。目的は、edusysデータベースのinstructorテーブルから給与が 6000 以上の教師の名前と給与を取得することです。

👀 プレビュー

JDBC プロジェクトのプレビュー画像

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • JDBC を使用してデータベース接続を確立する方法
  • パラメータプレースホルダを持つ PreparedStatement を作成する方法
  • 照会を実行して結果セットを処理する方法
  • 例外を処理してリソースを適切にクローズする方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • JDBC の基本と、MySQL データベースとやり取りするための使い方を理解すること
  • パラメータ付きの SQL 照会を実行するために PreparedStatement を使用する 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 = "";
             // データベース接続を確立する
             Connection connection = DriverManager.getConnection(url, username, password);
    
             // パラメータプレースホルダ付きの SQL 文を準備する
             String sql = "SELECT name, salary FROM instructor WHERE salary >?";
             PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
             // パラメータ値を設定する
             preparedStatement.setDouble(1, 6000);
    
             // 照会を実行する
             ResultSet resultSet = preparedStatement.executeQuery();
    
             // 結果セットをループ処理する
             while (resultSet.next()) {
                 String name = resultSet.getString("name");
                 double salary = resultSet.getDouble("salary");
                 System.out.println(name + " " + salary);
             }
    
             // リソースをクローズする
             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 でさらに多くの実験を行って練習することができます。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習