Druid データベース接続プール接続方法の最も詳細な説明

ディレクトリ:

方法 1: ドルイド ファクトリを使用して接続プールを初期化する

方法 2: 最初に druidDatasource を作成してから、データ ソースの初期化を手動で完了する

試験結果:

プロパティ ファイル:

注意が必要な詳細 (強調):


方法 1: ドルイド ファクトリを使用して接続プールを初期化する

具体的な手順:

  • ドルイド jar パッケージをインポートする
  • mysql 接続ドライバーのインポート
  • コード ブロックでデータ ソースの初期化を完了する
public class Utils { 
    private static DataSource dataSource; 
    static { 
        //方法 1: ドルイド ファクトリを使用してデータ ソースを作成する
        //入力ストリームを作成する
        InputStream stream = Utils.class.getClassLoader().getResourceAsStream("jdbc.properties"); 
        Properties properties = new Properties(); 
        try { 
            //構成ファイルの情報をプロパティにロードする
            properties.load(stream); 
            //Druid データ接続プールを作成し、データ プールの初期化を完了する
            dataSource = DruidDataSourceFactory.createDataSource(プロパティ); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    }
    public static Connection getConnection() { 
        try { 
            return dataSource.getConnection(); 
        } catch (SQLException e) { 
            //接続が異常な場合は、実行時例外をスローします
            throw new RuntimeException("接続プールに例外があります。"); 
        } 
} 
    }

方法 2: 最初に druidDatasource を作成してから、データ ソースの初期化を手動で完了する

public class Utils { 

    private static DruidDataSource druidDataSource; 
    static { 
        try { 
        //方法 2: druidDatasource を作成して、後で手動でデータ ソースの初期化を完了する
            druidDataSource=new DruidDataSource(); 
            druidDataSource.setDriverClassName("com.mysql.cj. jdbc.Driver"); 
            druidDataSource.setUrl("jdbc:mysql://localhost:3306/bookdb?serverTimezone=UTC"); 
            druidDataSource.setUsername("root"); 
            druidDataSource.setPassword("hjl123"); 
            //オプション設定
            druidDataSource.setMaxActive(20); 
            druidDataSource.setInitialSize(10); 
            druidDataSource.setMaxWait(5000);


        キャッチ(例外e){
            e.printStackTrace(); 
        } 
    } 

    public static Connection getConnection2() { 
        try { 
            return druidDataSource.getConnection(); 
        } catch (SQLException e) { 
            //接続が異常な場合、ランタイム例外をスローする throw 
            new RuntimeException(" 接続プール例外。"); 
        } 
    } 
}

試験結果:

プロパティ ファイル:

driverClassName=com.mysql.cj.jdbc.Driver 
url=jdbc:mysql://localhost:3306/bookdb?serverTimezone=UTC
ユーザー名=root 
password=hjl123 
initialSize=10 
maxActive=15 
minIdle=5 
maxWait=5000

注意が必要な詳細 (強調):

詳細 1:

  • 2 番目のステップでインポートされた mysql ドライバーでは、独自のデータベース バージョンに従って選択する必要があります。現在、2 つのメインストリーム バージョンがあり、1 つは5.7で、もう 1 つは約8.0です。私自身の mysql データベースはバージョン 8.0 であるため、8.0 以上の mysql データ ドライバーを使用する必要があります。バージョンが間違っている場合、エラーが報告されます

詳細 2:

  • ドライバーによっては、driverClassName および url 属性に対応する値も異なります。

    バージョン 5.7 は次のとおりです。

   driverClassName=com.mysql.jdbc.Driver

  //characterEncoding=utf8 データベースは今回UTF8データを送信するように接続しており、プロジェクトはUTF8でデータベースは他のエンコーディングです

  url=jdbc:mysql://localhost:3306/books? characterEncoding=utf8

    8.0 バージョンは次のとおりです。

                driverClassName=com.mysql.cj.jdbc.Driver

                //serverTimezone=UTC を追加する必要があります

                url=jdbc:mysql://localhost:3306/bookdb?serverTimezone=UTC

詳細 3:

  • mysql driver 5.1.6 以降では、属性 driverClassName の Class.forName(“com.mysql.cj.jdbc.Driver”) は不要になり、省略可能になりました。最下層は、ドライバーのバージョンに応じてドライバーの登録を自動的に完了します。

詳細 4: ドルイド ファクトリ モードを使用してプロパティ ファイルから対応するプロパティを読み取る場合、プロパティ名は固定されており、一貫性がなければなりません (注意が必要です!!!!!!!!!)。2 番目のものを使用する場合は、好みに応じてより多くの名前を付けることができます。

最後に:何か問題がある場合は、アドバイスしてください!

おすすめ

転載: blog.csdn.net/weixin_45533131/article/details/126810974