C3P0はオープンソースのJDBC接続プールで、データソースとJNDIバインディングを実装し、JDBC3仕様とJDBC2の標準拡張をサポートしています。c3p0は非同期で動作し、遅いJDBC操作はヘルププロセスを通じて完了します。これらの操作を拡張すると、パフォーマンスを効果的に改善できます。現在それを使用しているオープンソースプロジェクトには、休止状態、春などが含まれています。これは、PreparedStatementsサポートのキャッシングと再利用に使用される、成熟した高度な並行JDBC接続プールライブラリです。c3p0には、アイドル状態の接続を自動的に回復する機能があります。hibernate3は彼を推薦し始めました
方法1:データベース情報をJavaコードで直接取得し、データベース接続プールを確立する
@Test public void test()throws Exception { ComboPooledDataSource cpds = new ComboPooledDataSource(); // 接続プールを作成 cpds.setDriverClass( "com.mysql.jdbc.Driver"); // データベースドライバ cpds.setJdbcUrl( "jdbc:mysql :// localhost:3306 / test "); // データベースアドレス cpds.setUser(" root "); // ユーザー名 cpds.setPassword(" 123456 "); // パスワード 接続conn = cpds.getConnection(); / / 接続を取得します System.out.println(conn); // 接続を印刷します }
方法2:構成を通じてデータベース情報を取得し、データベース接続プールを確立する
@Test public static Connection getConnection2()throws SQLException { DataSource cpds = new ComboPooledDataSource( "myc3p0"); // myc3p0は、構成 Connectionのnamed-configタグのname属性と同じですconn = cpds.getConnection(); // Get Connect System.out.println(conn); //接続を印刷します }
srcディレクトリーに置かれた構成ファイルの名前:c3p0-config.xml
<?xml version = "1.0" encoding = "UTF-8" ?> < c3p0-config > < named-config name = "myc3p0" > <!- 获取连接的4 个基本信息-> < プロパティ名= "jdbcUrl " > jdbc:mysql:// localhost:3306 / test </ property > < property name =" driverClass " > com.mysql.jdbc.Driver </ property > < property name =" user " > root < = "password" > 123456 </ property > ' <!- データベース接続プールの管理に関連する関連プロパティの設定- > <!- データベースに十分な接続がない場合、一度にデータベースサーバーに適用される接続の数-> < プロパティ名= "acquireIncrement" > 5 </ プロパティ> <!- データベース接続プールの初期化時の接続数- > < プロパティ名= "initialPoolSize" > 5 </ プロパティ> <!- データベース接続プール内のデータベース接続の最小数- > < プロパティ名= "minPoolSize"> 5 </property > <!- データベース接続プール内のデータベース接続の最大数- > < property name = "maxPoolSize" > 10 </ property > <!- C3P0データベース接続プールが維持できるステートメントの数- > < property name = "maxStatements" > 20 </ property > <!- 各接続で同時に使用できるStatementオブジェクトの数- > < property name = "maxStatementsPerConnection" > 5 </ property > </ named-config > </ c3p0-config >