Alasan mengapa Javaweb Dbutils tidak dapat menemukan konten saat menjalankan perintah SQL dan melintasi set hasil adalah sebagai berikut:
Saat melintasi set hasil, hanya melintasi objek kacang yang hanya akan menghasilkan baris konten pertama (baris pertama adalah objek yang dipasang oleh kelas UserEntity), jadi di sini Anda perlu re.getRepotableName () untuk memanggil konten yang sesuai melalui objek.
Dengan cara ini, nilainya dapat diperoleh
PS: Dbutils Javaweb dirinci sebagai berikut:
1. Apa itu dbutil dan fungsinya
Dbutils ditulis oleh Apache. Dbutils adalah alat operasi basis data praktis dalam pemrograman Java, kecil, sederhana dan praktis.
DBUTILS merangkum operasi di JDBC, menyederhanakan operasi di JDBC. Anda dapat menulis lebih sedikit kode.
1. Untuk operasi pembacaan tabel data, ia dapat mengubah hasil menjadi koleksi Java seperti daftar, array, set, dll., Yang nyaman bagi programmer untuk beroperasi;
2. Operasi penulisan tabel data juga sangat sederhana (cukup tulis pernyataan SQL)
3.
2. Tiga objek inti DBUTILS
2.1. Kelas QueryRunner
QueryRunner menyediakan API untuk mengoperasikan pernyataan SQL. Ini memiliki tiga metode utama: query () digunakan untuk mengeksekusi Select, Update () digunakan untuk melakukan Insert Update Delete, batch () digunakan untuk melakukan pemrosesan batch. Berikut ini akan memperkenalkan penggunaan metode ini secara rinci.
2.2. Hasil antarmuka
Ini digunakan untuk menentukan cara merangkum hasil yang ditetapkan setelah operasi pilih. Ini memiliki total 9 kelas implementasi yang umum digunakan. Saya akan memperkenalkan secara detail cara menggunakannya.
2.3. Kelas DBUTILS
Ini adalah kelas alat yang mendefinisikan metode penutupan sumber daya dan pemrosesan transaksi
3. Cara menggunakan kerangka kerja dbutils
3.1. Gunakan langkah
Impor paket JAR yang sesuai
Buat objek QueryRunner
Gunakan metode kueri untuk menjalankan pernyataan pilih
Merangkum set hasil menggunakan HasilSethandler
Gunakan kelas DBUTILS untuk melepaskan sumber daya
3.2. Contoh
Catatan: Saya menggunakan kumpulan koneksi C3P0
impor java.sql.resultset; impor java.sql.sqlexception; impor java.util.arraylist; import java.util.list; org.apache.commons.dbutils.queryrunner; import org.apache.apache.commons.dbutils.queryner; org.apache.commons.dbutils.handlers.beanlisthandler; impor org.junit.test; import com.jxlg.domain.user; kelas publik testSelect {@test public testselect () {// membuat queryrunner objek queryrunner queryner qr = queryret queryner. Coba {// Hasil BaruNandler <Daftar <User>> Beri tahu kami cara merangkum daftar set Hasil <user> list = qr.query ("Select * From User", Hasil Baru. ArrayList <User>); daftar; } }); untuk (pengguna pengguna: daftar) {System.out.println (pengguna); }} catch (sqlexception e) {e.printstacktrace (); }} @Test public void testSelect2 () {// Buat QueryRunner objek QueryRunner qr = new QueryRunner (c3p0util.getDataSource ()); coba {// jalankan pernyataan SQL dan kembalikan daftar hasil <user> list = qr.query ("Pilih * dari pengguna di mana id =? dan nama pengguna =?", BeanlistHandler baru <user> (user.class), 1, "tom"); untuk (pengguna pengguna: daftar) {System.out.println (pengguna); }} catch (sqlexception e) {e.printstacktrace (); }}} 4. Penjelasan terperinci tentang tiga objek inti DBUTILS
4.1. Objek QueryRunner
4.1.1. Konstruktor
queryrunner baru (); Transaksinya dapat dikontrol secara manual.
Dengan kata lain, harus ada objek koneksi dalam metode (seperti kueri, pembaruan, batch) yang dipanggil oleh objek ini.
QueryRunner baru (DataSource DS); Transaksinya dikontrol secara otomatis. Satu SQL dan satu transaksi.
Tidak ada objek koneksi dalam metode (seperti kueri, pembaruan, batch) yang dipanggil oleh objek ini.
4.1.2. Metode umum
4.2. Hasil antarmuka
4.2.1. Ini memiliki 9 prosesor hasil
ArrayHandler: Cocok untuk 1 catatan. Merangkum setiap kolom catatan ke dalam objek array []
ArrayListHandler: Cocok untuk beberapa catatan. Encapsulate setiap nilai kolom dari setiap catatan ke dalam objek array [], dan merangkum array ke dalam daftar kolomlisThandler: Ambil data kolom tertentu. Dikemas dalam daftar.
KeyedHandler: Ambil beberapa catatan, setiap catatan dienkapsulasi ke dalam satu peta, dan kemudian merangkum peta ini ke peta lain, dan kunci adalah nilai bidang yang ditentukan.
Maphandler: Cocok untuk 1 catatan. Masukkan nama kolom dan nilai kolom dari catatan saat ini di satu peta Maplisthandler: Cocok untuk beberapa catatan. Merangkum setiap catatan ke dalam peta, dan kemudian merangkum peta ke dalam daftar skalarhandler: cocok untuk satu baris dan data kolom tunggal beanhandler
Beanlisthandler
4.2.2. Contoh
Impor statis org.junit.assert.*; import java.sql.sqlexception; impor java.util.list; import java.util.map; impor java.util.map.entry; import org.apache.commons.dbutils.Queryrunner; import org.apommons.dbutils.QueryRunner; impor org.apommons.dbutils.Queryrunner; impor org.apommons.dbutils.Queryrunner; impor org.apache.commons.dbutils.QueryRunner; org.apache.commons.dbutils.handlers.beanHandler; impor org.apache.commons.dbutils.handlers.columnlisthandler; impor org.apache.commons.dbutils.handlers.keyedhandler; impor org.apache.commons.commons.dbutil.handandler; org.apache.commons.dbutils.handlers.maplisthandler; impor org.apache.commons.dbutils.handlers.scalarhandler; impor org.junit.test; impor com.jxlg.domain.user; crasresller kelas publik {@test. Merangkum setiap kolom dari nilai catatan ke dalam objek array [] queryrunner qr = queryrunner baru (c3p0util.getDataSource ()); coba {objek [] o = qr.query ("Pilih * dari pengguna di mana id =?", ArrayHandler baru (), 5); untuk (objek objek: o) {System.out.println (objek); }} catch (sqlexception e) {e.printstacktrace (); }} @Test public void test2 () melempar SQlexception {// arraylisthandler: Cocok untuk beberapa catatan. Merangkum setiap kolom dari setiap catatan ke dalam objek array [], dan merangkum array ke dalam daftar queryrunner qr = queryrunner baru (c3p0util.getDataSource ()); Daftar <object []> list = qr.query ("SELECT * from User", new ArrayListHandler ()); untuk (objek [] objek: daftar) {untuk (objek objek: objek) {system.out.println (objek); } System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- } } @Test public void test3 () melempar sqlexception {// columnlisthandler: dapatkan data kolom tertentu. System.out.println (objek); data dalam tabel, dan kunci peta kecil adalah nama kolom tabel, jadi kunci peta besar menggunakan jenis objek dan string adalah peta kecil. adalah id, karena "1" diatur. // Maphandler: Cocok untuk 1 Rekaman. System.out.println (m.getKey ()+"/t"+m.getValue ()); QueryRunner (c3p0util.getDataSource ()); System.out.println ("-------------"); System.out.println (o); System.out.println (pengguna);5. Gunakan dbutils untuk membuat contoh penambahan, menghapus, memodifikasi dan mencari
Impor static org.junit.assert.*; impor java.sql.sqlexception; impor java.util.date; impor javax.crypto.spec.oaeParameterspec; impor org.apache.commons.dbutils.QueryRunner; impor org.junit.apache.commons // Buat QueryRunner Object QueryRunner QR = New QueryRunner (c3p0util.getDataSource ()); Coba {qr.update ("Masukkan ke dalam pengguna (nama pengguna, kata sandi, email, ulang tahun) nilai (?,?,?,?)", "Guapi", "4646", "[email protected]", tanggal baru ()); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testUpdate () {// Buat QueryRunner objek QueryRunner qr = new QueryRunner (c3p0util.getDataSource ()); coba {qr.update ("Perbarui pengguna atur username =?, kata sandi =? di mana id = 4", "meizimeizi", "520520"); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testDelete () {// Buat QueryRunner objek QueryRunner qr = new QueryRunner (c3p0util.getDataSource ()); coba {qr.update ("Hapus dari pengguna di mana id =?", 4); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testBatch () {// Buat QueryRunner objek QueryRunner qr = new QueryRunner (c3p0util.getDataSource ()); coba {objek [] [] params = objek baru [10] []; // Dimensi tinggi mewakili berapa kali pernyataan SQL dieksekusi untuk (int i = 0; i <params.length; i ++) {params [i] = objek baru [] {"guapi"+i, "4646", "[email protected]", tanggal baru ()}}; } qr.batch ("masukkan ke pengguna (nama pengguna, kata sandi, email, ulang tahun) nilai (?,?,?,?)", params); } catch (sqlexception e) {e.printstacktrace (); }}} Meringkaskan
Di atas adalah alasan mengapa Javaweb Dbutils tidak dapat ditemukan saat menjalankan perintah SQL dan melintasi hasil yang ditetapkan. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke wulin.com!