Di returnAllParts#queryReturnAllParts
your Anda metode, ubah
con.getDBConnection();
Oleh
con = getDBConnection();
Masalahnya adalah con
adalah variabel dari java.sql.Connection
dan tidak memiliki getDBConnection
metode. Sejak returnAllParts
Anda saat ini kelas memperluas DBConnect
kelas, ia dapat mengakses public Connection getDBConnection
metode tanpa masalah.
Ini karena di Main#main
. Anda kelas, Anda telah mendeklarasikan DBConnect con
. Jangan bingung variabel ini dengan con
variabel dideklarasikan dalam metode lain.
Tidak terkait langsung dengan masalah, tetapi saya menyarankan Anda beberapa perbaikan pada kode/desain Anda saat ini:
- Ubah nama
returnAllParts
Anda kelas untuk sesuatu yang lebih bermakna bagi pembaca masa depan (bahkan Anda dalam beberapa hari atau minggu akan menjadi pembaca kode Anda di masa depan). Dari membaca kode Anda, sepertinya kelas ini harus diganti namanya menjadiPartList
. - Gunakan kumpulan koneksi Database alih-alih dapatkan koneksi Anda secara manual. Ada perpustakaan yang menangani ini untuk Anda seperti BoneCP
- Mungkin Anda baru mengenal pemrograman, jadi akan lebih baik jika Anda memulai dengan cara yang benar dan mengembangkan aplikasi berlapis-lapis (baca lebih lanjut:Arsitektur multitier
). Dengan dasar ini, kita dapat mengatakan bahwa DAO (atau layanan data, tergantung bagaimana Anda menamakannya) hanya boleh berisi metode untuk mengakses dan mengambil data dengan cara yang dapat digunakan oleh klien lain sesuai keinginan/kebutuhannya, jadi itu akan menjadi lebih baik mengembalikan
List<PartList>
objek dan lapisan lain dalam aplikasi Anda (mungkin yang paling dekat dengan presentasi) akan menerapkan transformasi dari objek Anda ke String JSON. - Untuk sudut pandang desain, akan jauh lebih baik jika objek akses database Anda menggunakan
DBConnect
objek alih-alih memanjang darinya. Dengan cara ini, Anda dapat memiliki satuDBConnect
objek per konfigurasi koneksi database yang terkait dengan semua DAO terkait.