Pracuji na webovém projektu a nedávno jsem nainstaloval postgres 9.1.1
...
Přidal jsem to do cesty sestavení Java pomocí vlastností projektu přes Eclipse.
To je špatný způsob. Tento JAR musí být vypuštěn přímo do /WEB-INF/lib
složky webového projektu, aniž byste si museli pohrávat s Cestou sestavení ve vlastnostech projektu. Tato složka je standardní součástí runtime classpath webové aplikace.
Nesouvisí ke konkrétnímu problému:ve vašem DBConnection
máte velkou konstrukční chybu třída. Deklarovali jste Connection
jako static
díky čemuž je vaše připojení v podstatě nebezpečné pro vlákna . Používejte fond připojení a nikdy nepřiřazujte Connection
(ani Statement
ani ResultSet
) jako proměnná třídy/instance. Měly by být vytvořeny a uzavřeny ve stejném try-finally
blokovat jako místo, kde provádíte dotaz. Dále zde máte také SQL injekční otvor. Použijte PreparedStatement
místo zřetězení uživatelem řízených proměnných v řetězci SQL.
Viz také:
- Postupy sdružování připojení JDBC MySql, aby se zabránilo vyčerpání fondu připojení
- Získejte připojení k databázi z fondu připojení
- Používám sdružování připojení JDBC?