Работя по уеб проект и наскоро инсталирах postgres 9.1.1
...
Добавих го към пътя за изграждане на Java използвайки свойствата на проекта чрез eclipse.
Това е грешен начин. Този JAR трябва да бъде пуснат направо в /WEB-INF/lib
папка на уеб проекта, без да се занимавате с Пътят на изграждане в имотите на проекта. Тази папка е стандартна част от пътя на класа по време на изпълнение на webapp.
Несвързани към конкретния проблем:имате голям недостатък в дизайна на вашия DBConnection
клас. Декларирахте Connection
като static
което по същество прави връзката ви небезопасна за нишки . Използвайте пул за връзки и никога не присвоявайте Connection
(нито Statement
нито ResultSet
) като променлива на клас/екземпляр. Те трябва да бъдат създадени и затворени в същия try-finally
блокирайте като мястото, където изпълнявате заявката. Освен това имате и дупка за инжектиране на SQL. Използвайте PreparedStatement
вместо конкатениране на контролирани от потребителя променливи в SQL низа.
Вижте също:
- JDBC MySql практики за обединяване на връзки, за да се избегне изчерпаният пул за връзки
- Вземете връзка с база данни от пул за връзки
- Използвам ли JDBC пул за връзки?