Druid データベース接続プールへのアクセス

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

はじめに

このプロジェクトでは、Druid データベース接続プールを設定し、それを使って MySQL データベースからデータを取得する方法を学びます。Druid は、MySQL、PostgreSQL、Oracle など、様々なデータベース接続をサポートする人気のオープンソースデータベース接続プールです。

👀 プレビュー

Druid 接続プールの設定

🎯 タスク

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

  • Druid データベース接続プールを設定する方法
  • Druid 接続プールからデータベース接続を返すgetConn()メソッドを実装する方法
  • Druid 接続プールを使って MySQL データベースからデータを取得する方法

🏆 成果

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

  • Druid データベース接続プールを構成して使用する
  • 接続プールを使って MySQL データベースとやり取りする
  • Java Web アプリケーションにおけるデータベース接続の管理におけるベストプラクティスを適用する

Druid データベース接続プールを設定する

このステップでは、MySQL データベースに接続するための Druid データベース接続プールを設定する方法を学びます。

  1. org.labex.utilパッケージにあるDBUtil.javaファイルを開きます。

  2. DBUtilクラスに、次のコードを追加します。

private static DataSource dataSource;

{
    try {
        // プロパティファイルから Druid の設定を読み込む
        InputStream inputStream = DBUtil.class.getClassLoader().getResourceAsStream("druid.properties");
        Properties properties = new Properties();
        properties.load(inputStream);

        // 設定に基づいて DruidDataSource を作成する
        dataSource = DruidDataSourceFactory.createDataSource(properties);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

このコードは、druid.propertiesファイルから Druid の設定を読み込み、その設定に基づいてDruidDataSourceオブジェクトを作成する役割を果たします。

  1. DBUtilクラスにgetConn()メソッドを実装して、Druid 接続プールからデータベース接続を返します。
public Connection getConn() {
    // DruidDataSource から接続を取得する
    Connection conn = null;
    try {
        conn = dataSource.getConnection();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return conn;
}

このメソッドは、Druid 接続プールからデータベース接続を返します。

Web アプリケーションを起動する

このステップでは、Web アプリケーションを起動し、ブラウザでユーザー情報を表示する方法を学びます。

  1. ターミナルで、以下のコマンドを使用してプロジェクトディレクトリに移動します。
cd ~/project/DruidProject
  1. Web アプリケーションを起動するには、以下のコマンドを実行します。
mvn clean tomcat7:run
  1. Web ブラウザを開き、http://localhost:8080にアクセスします。入力フィールドとボタンが表示されます。入力フィールドにAnyaまたはEthanを入力し、検索ボタンをクリックすると、データベースからデータが取得されます。

期待される結果は以下の図のようになるはずです。

Web アプリケーションの検索結果

まとめ

おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。

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