In Ihrem returnAllParts#queryReturnAllParts
Methode, ändern
con.getDBConnection();
Von
con = getDBConnection();
Das Problem ist, dass con
ist eine Variable aus java.sql.Connection
und es hat keine getDBConnection
Methode. Da Ihr aktuelles returnAllParts
Klasse erweitert DBConnect
Klasse kann sie auf die public Connection getDBConnection
zugreifen Methode ohne Probleme.
Das liegt daran, dass in Ihrem Main#main
Klasse haben Sie DBConnect con
deklariert . Verwechseln Sie diese Variable nicht mit con
in anderen Methoden deklarierte Variable.
Nicht direkt mit dem Problem verbunden, aber ich schlage Ihnen einige Verbesserungen an Ihrem aktuellen Code/Design vor:
- Ändern Sie den Namen Ihrer
returnAllParts
Klasse für etwas Sinnvolleres für zukünftige Leser (auch Sie werden in einigen Tagen oder Wochen zu einem zukünftigen Leser Ihres Codes). Wenn Sie Ihren Code lesen, sieht es so aus, als ob diese Klasse inPartList
umbenannt werden sollte . - Verwenden Sie einen Datenbankverbindungspool, anstatt Ihre Verbindungen manuell abzurufen. Es gibt Bibliotheken, die das für Sie handhaben, wie BoneCP
- Wahrscheinlich sind Sie neu in der Programmierung, daher wäre es besser, wenn Sie richtig anfangen und Ihre Anwendung in Schichten entwickeln (weiterführende Literatur:Multitier-Architektur
). Auf dieser Grundlage können wir sagen, dass ein DAO (oder Datendienst, je nachdem, wie Sie es nennen) nur die Methoden enthalten sollte, um auf die Daten zuzugreifen und sie so abzurufen, dass andere Clients sie nach Belieben/Bedarf verwenden können besser eine
List<PartList>
zurückgeben -Objekt und dass eine andere Ebene in Ihrer Anwendung (wahrscheinlich die der Präsentation am nächsten kommt) die Transformation von Ihren Objekten auf einen JSON-String anwendet. - Aus gestalterischer Sicht wäre es viel besser wenn Ihre Datenbankzugriffsobjekte einen
DBConnect
verwenden Objekt, anstatt sich von ihm zu erweitern. Auf diese Weise könnten Sie einen einzigenDBConnect
haben Objekt pro Datenbankverbindungskonfiguration, die allen zugehörigen DAOs zugeordnet ist.