Nel tuo returnAllParts#queryReturnAllParts
metodo, cambia
con.getDBConnection();
Per
con = getDBConnection();
Il problema è che con
è una variabile di java.sql.Connection
e non ha un getDBConnection
metodo. Dal tuo attuale returnAllParts
la classe estende DBConnect
classe, può accedere alla public Connection getDBConnection
metodo senza problemi.
Questo perché nel tuo Main#main
class, hai dichiarato DBConnect con
. Non confondere questa variabile con con
variabile dichiarata in altri metodi.
Non direttamente correlato al problema, ma ti suggerisco alcuni miglioramenti al tuo codice/design attuale:
- Cambia il nome del tuo
returnAllParts
classe per qualcosa di più significativo per i futuri lettori (anche tu in alcuni giorni o settimane diventerai un futuro lettore del tuo codice). Dalla lettura del codice, sembra che questa classe debba essere rinominata inPartList
. - Utilizza un pool di connessioni al database invece di ottenere manualmente le tue connessioni. Ci sono librerie che gestiscono questo per il tuo like BoneCP
- Probabilmente sei nuovo alla programmazione, quindi sarebbe meglio che inizi nel modo giusto e sviluppi la tua applicazione a strati (ulteriori letture:Architettura multilivello
). Con questa base, possiamo dire che un DAO (o servizio dati, dipende da come lo chiami) dovrebbe contenere solo i metodi per accedere e recuperare i dati in un modo in cui altri client potrebbero consumarli come vogliono/necessitano, quindi sarebbe meglio restituire un
List<PartList>
oggetto e che un altro livello nella tua applicazione (probabilmente il più vicino alla presentazione) applicherà la trasformazione dai tuoi oggetti a una stringa JSON. - Per un punto di vista del design, sarebbe molto meglio se gli oggetti di accesso al database utilizzano un
DBConnect
oggetto invece di estendersi da esso. In questo modo, potresti avere un unicoDBConnect
configurazione di connessione oggetto per database associata a tutti i DAO correlati.