ディレクトリ:
方法 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 番目のものを使用する場合は、好みに応じてより多くの名前を付けることができます。
最後に:何か問題がある場合は、アドバイスしてください!