Dans votre returnAllParts#queryReturnAllParts
méthode, changer
con.getDBConnection();
Par
con = getDBConnection();
Le problème est que con
est une variable de java.sql.Connection
et il n'a pas de getDBConnection
méthode. Depuis votre returnAllParts
actuel la classe étend DBConnect
class, il peut accéder à la public Connection getDBConnection
méthode sans problème.
C'est parce que dans votre Main#main
class, vous avez déclaré DBConnect con
. Ne confondez pas cette variable avec le con
variable déclarée dans d'autres méthodes.
Pas directement lié au problème, mais je vous suggère quelques améliorations à votre code/design actuel :
- Modifier le nom de votre
returnAllParts
classe pour quelque chose de plus significatif pour les futurs lecteurs (même vous dans quelques jours ou semaines deviendrez un futur lecteur de votre code). À la lecture de votre code, il semble que cette classe devrait être renomméePartList
. - Utilisez un pool de connexions de base de données au lieu d'obtenir manuellement vos connexions. Il existe des bibliothèques qui gèrent cela pour votre comme BoneCP
- Vous êtes probablement novice en programmation, il serait donc préférable que vous commenciez de la bonne manière et que vous développiez votre application en couches (pour en savoir plus :Architecture multiniveau
). Avec cette base, nous pouvons dire qu'un DAO (ou service de données, dépend de la façon dont vous le nommez) ne devrait contenir que les méthodes pour accéder et récupérer les données d'une manière que d'autres clients pourraient consommer comme ils le souhaitent/ont besoin, donc ce serait mieux retourner un
List<PartList>
objet et qu'une autre couche de votre application (probablement la plus proche de la présentation) appliquera la transformation de vos objets en une chaîne JSON. - Du point de vue du design, ce serait bien mieux si vos objets d'accès à la base de données utilisent un
DBConnect
objet au lieu de s'en étendre. De cette façon, vous pourriez avoir un seulDBConnect
objet par configuration de connexion à la base de données associée à tous les DAO associés.