I din returnAllParts#queryReturnAllParts metode, ændre
con.getDBConnection();
Af
con = getDBConnection();
Problemet er, at con er en variabel fra java.sql.Connection og den har ikke en getDBConnection metode. Siden din nuværende returnAllParts klasse udvider DBConnect klasse, kan den få adgang til den public Connection getDBConnection metode uden problemer.
Dette skyldes i din Main#main klasse, har du erklæret DBConnect con . Forveksle ikke denne variabel med con variabel erklæret i andre metoder.
Ikke direkte relateret til problemet, men jeg foreslår dig nogle forbedringer til din nuværende kode/design:
- Skift navnet på din
returnAllPartsklasse for noget mere meningsfuldt for fremtidige læsere (selv dig i nogle dage eller uger vil blive i en fremtidig læser af din kode). Fra læsning af din kode ser det ud til, at denne klasse skal omdøbes tilPartList. - Brug en databaseforbindelsespulje i stedet for manuelt at hente dine forbindelser. Der er biblioteker, der håndterer dette for din like BoneCP
- Sandsynligvis er du ny til programmering, så det ville være bedre, at du starter på den rigtige måde og udvikler din applikation i lag (yderligere læsning:Multitier-arkitektur
). Med dette grundlag kan vi sige, at en DAO (eller datatjeneste, afhænger af, hvordan du navngiver den) kun skal indeholde metoderne til at få adgang til og hente dataene på en måde, som andre klienter kunne forbruge det, som de ønsker/har brug for, så det ville være bedre at returnere en
List<PartList>objekt, og at et andet lag i din applikation (sandsynligvis det tætteste på præsentation) vil anvende transformationen fra dine objekter til en JSON-streng. - For et designsynspunkt ville det være langt bedre hvis dine databaseadgangsobjekter bruger en
DBConnectobjekt i stedet for at strække sig fra det. På denne måde kunne du have en enkeltDBConnectobjekt pr. databaseforbindelseskonfiguration knyttet til alle de relaterede DAO'er.