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
returnAllParts
klasse 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
DBConnect
objekt i stedet for at strække sig fra det. På denne måde kunne du have en enkeltDBConnect
objekt pr. databaseforbindelseskonfiguration knyttet til alle de relaterede DAO'er.