sql >> データベース >  >> RDS >> Mysql

Java PooledConnectionsを正しく使用していますか?

    これは正しい方法ではありません。データソースは、アプリケーションを実行しているコンテナで管理する必要があります。MysqlConnectionPoolDataSource ない 接続プール。これは、javax.sql.DataSource インターフェース。通常、JNDIコンテキストで定義し、そこから取得します。また、MySQL自体は、すべてをそれらのドキュメント

    さて、それをどのように使用するかは、アプリケーションの目的によって異なります。 Webアプリケーションの場合は、問題のservletcontainer/appserverのJNDIリソースのドキュメントを参照する必要があります。たとえばTomcatの場合は、ここで見つけることができます。 。クライアントアプリケーションを実行している場合(接続プールの価値について非常に疑問があります)、MySQLが提供する接続プールデータソースを利用できる接続プールフレームワークを探す必要があります。 C3P0

    投稿したコードのもう1つの問題は、PooledConnection#getConnection()です。 基になるを返します したがって、ない接続 プールされた接続。 closeを呼び出すと、接続はプールに戻りませんが、実際に閉じます。プールは毎回新しい接続を作成する必要があります。

    次に、スレッドの安全性に関する話です。これは、実際のに依存します。 問題の接続プールフレームワーク。 C3P0は何年にもわたってその堅牢性を証明しており、標準のイディオムに従ってJDBCコードを記述している限り、つまりのみを使用している限り、心配する必要はありません。 JDBCインターフェースを使用して、およびを取得します。 すべてのリソースを閉じます(ConnectionStatement およびResultSet )可能な限り最短の範囲で。




    1. pipを使用してPythonMySQLdbモジュールをインストールするにはどうすればよいですか?

    2. テーブル値パラメータをJavaからSQLServerストアドプロシージャに渡す方法は?

    3. MySQLのHAVINGCOUNT(*)から削除

    4. SQL Server 2014:ネイティブバックアップ暗号化