私はウェブプロジェクトに取り組んでいます 最近、postgres9.1.1をインストールしました
...
プロジェクトのプロパティを使用してJavaビルドパスに追加しました 日食を介して。
それは間違った方法です。そのJARは/WEB-INF/lib
に直接ドロップする必要があります ビルドパスをいじらずにWebプロジェクトのフォルダ プロジェクトのプロパティで。そのフォルダは、Webアプリケーションのランタイムクラスパスの標準部分です。
無関係 具体的な問題:DBConnection
に大きな設計上の欠陥があります クラス。 Connection
を宣言しました static
として これにより、基本的に接続がスレッドセーフではなくなります 。接続プールを使用し、Connection
を割り当てないでください (またはStatement
ResultSet
でもありません )クラス/インスタンス変数として。それらは、まったく同じtry-finally
で作成および閉じる必要があります クエリを実行している場所としてブロックします。さらに、SQLインジェクションの穴もあります。 PreparedStatement
を使用する SQL文字列でユーザー制御変数を連結する代わりに。
関連項目:
- 接続プールの枯渇を回避するためのJDBCMySql接続プールの実践
- 接続プールからデータベース接続を取得する
- JDBC接続プールを使用していますか?