Trong returnAllParts#queryReturnAllParts
của bạn phương pháp, thay đổi
con.getDBConnection();
Bởi
con = getDBConnection();
Vấn đề là con
là một biến từ java.sql.Connection
và nó không có getDBConnection
phương pháp. Vì returnAllParts
hiện tại của bạn lớp mở rộng DBConnect
, nó có thể truy cập vào public Connection getDBConnection
phương pháp không có vấn đề.
Điều này là do trong Main#main
của bạn lớp, bạn đã khai báo DBConnect con
. Đừng nhầm lẫn biến này với con
biến được khai báo trong các phương thức khác.
Không liên quan trực tiếp đến vấn đề, nhưng tôi đề xuất bạn một số cải tiến đối với mã / thiết kế hiện tại của bạn:
- Thay đổi tên của
returnAllParts
của bạn lớp cho điều gì đó có ý nghĩa hơn cho những người đọc trong tương lai (thậm chí bạn trong một số ngày hoặc vài tuần sẽ trở thành người đọc mã của bạn trong tương lai). Từ việc đọc mã của bạn, có vẻ như lớp này sẽ được đổi tên thànhPartList
. - Sử dụng nhóm kết nối Cơ sở dữ liệu thay vì nhận các kết nối của bạn theo cách thủ công. Có những thư viện xử lý việc này cho bạn như BoneCP
- Có thể bạn là người mới lập trình, vì vậy tốt hơn hết là bạn nên bắt đầu đúng cách và phát triển ứng dụng của mình theo từng lớp (đọc thêm: Kiến trúc nhiều hơn
). Với cơ sở này, chúng ta có thể nói rằng một DAO (hoặc dịch vụ dữ liệu, tùy thuộc vào cách bạn đặt tên nó) chỉ nên chứa các phương thức để truy cập và truy xuất dữ liệu theo cách mà các khách hàng khác có thể sử dụng nó như họ muốn / cần, vì vậy nó sẽ là tốt hơn nên trả lại
List<PartList>
đối tượng và một lớp khác trong ứng dụng của bạn (có thể là lớp gần nhất với bản trình bày) sẽ áp dụng chuyển đổi từ các đối tượng của bạn thành Chuỗi JSON. - Đối với quan điểm thiết kế, sẽ là cách tốt hơn nếu các đối tượng truy cập cơ sở dữ liệu của bạn sử dụng
DBConnect
đối tượng thay vì mở rộng từ nó. Bằng cách này, bạn có thể có mộtDBConnect
duy nhất đối tượng trên mỗi cấu hình kết nối cơ sở dữ liệu được liên kết với tất cả các DAO có liên quan.