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
returnAllParts
tří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í
DBConnect
objekt místo toho, aby z něj vyčníval. Tímto způsobem můžete mít jedenDBConnect
objekt na konfiguraci připojení k databázi přidružené ke všem souvisejícím DAO.