Tôi đang làm việc trên một dự án web và gần đây tôi đã cài đặt postgres 9.1.1
...
Tôi đã thêm nó vào đường dẫn xây dựng java bằng cách sử dụng các thuộc tính của dự án qua nhật thực.
Đó là cách làm sai lầm. JAR đó phải được bỏ thẳng trong /WEB-INF/lib
thư mục của dự án web mà không gặp khó khăn với Đường dẫn xây dựng trong các tài sản của dự án. Thư mục đó là một phần tiêu chuẩn của đường dẫn thời gian chạy của ứng dụng web.
Không liên quan vấn đề cụ thể:bạn có một lỗ hổng thiết kế lớn trong DBConnection
của mình lớp. Bạn đã khai báo Connection
dưới dạng static
về cơ bản làm cho kết nối của bạn không an toàn theo chuỗi . Sử dụng nhóm kết nối và không bao giờ chỉ định Connection
(cũng không phải Statement
cũng không phải ResultSet
) như một biến lớp / phiên bản. Chúng phải được tạo và đóng trong cùng một try-finally
chặn như nơi bạn đang thực hiện truy vấn. Hơn nữa, bạn cũng có một lỗ hổng SQL injection. Sử dụng PreparedStatement
thay vì nối các biến do người dùng kiểm soát trong chuỗi SQL.
Xem thêm:
- Các phương pháp tổng hợp kết nối JDBC MySql để tránh kết nối cạn kiệt
- Nhận kết nối cơ sở dữ liệu từ một nhóm kết nối
- Tôi có đang sử dụng tổng hợp kết nối JDBC không?