Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Java-Mysql-Abfragedatenbank mit Verbindung

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 in PartList 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 einzigen DBConnect haben Objekt pro Datenbankverbindungskonfiguration, die allen zugehörigen DAOs zugeordnet ist.