Ve vašem returnAllParts#queryReturnAllParts metoda, změna
con.getDBConnection();
Autor
con = getDBConnection();
Problém je v tom, že con je proměnná z java.sql.Connection a nemá getDBConnection metoda. Od vašeho aktuálního returnAllParts class rozšiřuje DBConnect třídy, může přistupovat k public Connection getDBConnection metoda bez problémů.
Je to proto, že ve vašem Main#main třídy, deklarovali jste DBConnect con . Nezaměňujte tuto proměnnou s con proměnná deklarovaná v jiných metodách.
Přímo nesouvisí s problémem, ale navrhuji vám některá vylepšení vašeho současného kódu/designu:
- Změňte název
returnAllPartstřídy pro něco smysluplnějšího pro budoucí čtenáře (i vy se za několik dní či týdnů stanete budoucím čtenářem svého kódu). Z přečtení vašeho kódu to vypadá, že by tato třída měla být přejmenována naPartList. - Namísto ručního získávání připojení použijte fond připojení k databázi. Existují knihovny, které to zpracovávají jako BoneCP
- Pravděpodobně jste nováčkem v programování, takže by bylo lepší, abyste začali správným způsobem a vyvíjeli aplikaci ve vrstvách (další informace:Vícevrstvá architektura
). Na tomto základě můžeme říci, že DAO (nebo datová služba, podle toho, jak ji pojmenujete) by měla obsahovat pouze metody pro přístup k datům a jejich získávání způsobem, jakým by je ostatní klienti mohli využívat, jak chtějí/potřebují, takže by lépe vrátit
List<PartList>objekt a že další vrstva ve vaší aplikaci (pravděpodobně nejbližší prezentaci) použije transformaci z vašich objektů na řetězec JSON. - Z hlediska designu by to bylo mnohem lepší pokud vaše objekty pro přístup k databázi používají
DBConnectobjekt místo toho, aby z něj vyčníval. Tímto způsobem můžete mít jedenDBConnectobjekt na konfiguraci připojení k databázi přidružené ke všem souvisejícím DAO.