In uw returnAllParts#queryReturnAllParts
methode, wijzigen
con.getDBConnection();
Door
con = getDBConnection();
Het probleem is dat con
is een variabele van java.sql.Connection
en het heeft geen getDBConnection
methode. Sinds uw huidige returnAllParts
class breidt DBConnect
uit class, heeft het toegang tot de public Connection getDBConnection
methode zonder problemen.
Dit komt omdat in uw Main#main
class, je hebt DBConnect con
. gedeclareerd . Verwar deze variabele niet met de con
variabele gedeclareerd in andere methoden.
Niet direct gerelateerd aan het probleem, maar ik stel u enkele verbeteringen voor aan uw huidige code/ontwerp:
- Wijzig de naam van uw
returnAllParts
class voor iets zinvoller voor toekomstige lezers (zelfs jij wordt in sommige dagen of weken in een toekomstige lezer van je code). Als je je code leest, lijkt het erop dat deze klasse moet worden hernoemd naarPartList
. - Gebruik een databaseverbindingspool in plaats van handmatig uw verbindingen op te halen. Er zijn bibliotheken die dit voor u afhandelen, zoals BoneCP
- Waarschijnlijk ben je nieuw in programmeren, dus het is beter dat je op de juiste manier begint en je applicatie in lagen ontwikkelt (lees verder:Multitier-architectuur
). Met deze basis kunnen we zeggen dat een DAO (of dataservice, hangt ervan af hoe je het noemt) alleen de methoden moet bevatten om toegang te krijgen tot de gegevens en deze op te halen op een manier die andere klanten zouden kunnen gebruiken zoals ze willen / nodig hebben, dus het zou zijn beter een
List<PartList>
retourneren object en dat een andere laag in uw toepassing (waarschijnlijk het dichtst bij de presentatie) de transformatie van uw objecten naar een JSON-tekenreeks zal toepassen. - Voor een ontwerpstandpunt zou het veel beter zijn als uw databasetoegangsobjecten een
DBConnect
. gebruiken object in plaats van ervan uit te strekken. Op deze manier zou u een enkeleDBConnect
. kunnen hebben object per databaseverbindingsconfiguratie gekoppeld aan alle gerelateerde DAO's.