Във вашите returnAllParts#queryReturnAllParts
метод, промяна
con.getDBConnection();
От
con = getDBConnection();
Проблемът е, че con
е променлива от java.sql.Connection
и няма getDBConnection
метод. Тъй като текущият ви returnAllParts
класът разширява DBConnect
клас, той има достъп до public Connection getDBConnection
метод без проблеми.
Това е така, защото във вашия Main#main
клас, вие сте декларирали DBConnect con
. Не бъркайте тази променлива с con
променлива, декларирана в други методи.
Не е пряко свързано с проблема, но ви предлагам някои подобрения на текущия ви код/дизайн:
- Променете името на вашите
returnAllParts
клас за нещо по-смислено за бъдещите читатели (дори вие след няколко дни или седмици ще станете бъдещ читател на вашия код). От четенето на вашия код изглежда, че този клас трябва да бъде преименуван наPartList
. - Използвайте набор от връзки към база данни вместо ръчно получаване на вашите връзки. Има библиотеки, които обработват това за вашия like BoneCP
- Вероятно сте нов в програмирането, така че би било по-добре да започнете по правилния начин и да разработите приложението си на слоеве (допълнително четене:Многостепенна архитектура
). С тази основа можем да кажем, че DAO (или услуга за данни, зависи как я наименувате) трябва да съдържа само методите за достъп и извличане на данните по начин, по който други клиенти могат да ги консумират, както искат/има нужда, така че би било по-добро връщане на
List<PartList>
обект и че друг слой във вашето приложение (вероятно най-близкият до представяне) ще приложи трансформацията от вашите обекти към JSON низ. - От гледна точка на дизайна би било много по-добре ако вашите обекти за достъп до база данни използват
DBConnect
обект, вместо да се простира от него. По този начин можете да имате единDBConnect
обект за конфигурация на връзка с база данни, свързана с всички свързани DAO.