Lengkapi kueri SQL dan masukkan hasil kueri ke dalam container vektor untuk digunakan program lain
/** Eksekusi Pernyataan Kueri SQL*/Public Static <T> Vektor <T> ExecuteQuery (class <t> clazz, string sql, objek ... args) {connection conn = null; disiapkan disiapkan disiapkan = null; hasil rs = null; vektor <t> vecrs = vektor baru <); Jdbctools.getConnection (); disiapkan statement = conn.preparestatement (sql); // Gunakan pernyataan sql untuk menentukan kolom mana yang dipilih (int i = 0; i <args.length; i ++) {disiapkan sqaD. Class // Dapatkan alias dari hasil jalanan stud_id dapatkan metadata dari JDBC // Dapatkan nilai setiap kolom dari set hasil, dan gabungkan langkah sebelumnya untuk mendapatkan peta key-value pair // Key: Column Alias Nilai: Nilai Kolom // Nilai Atribut dari Objek Kelas Entitas Menggunakan Refleksi // Nilai Kunci dari Atribut (Nilai Atribut. Dapatkan metadata resultsetmetadata rsmd = rs.getMetadata (); peta <string, objek> mapMetadata = hashmap baru <string, objek> (); // cetak nama kolom kolom sementara (rs.next ()) {// dapatkan deretan data dalam tabel data yang memenuhi persyaratan dan meletakkannya di dalamnya ()) {// dapatkan deretan data dalam tabel data yang memenuhi persyaratan dan meletakkannya di dalam i ++) {string columnLabel = rsmd.getColumnLabel (i+1); objek ColumnValue = rs.getObject (ColumnLabel); // System.out.println (ColumnLabel); MapMetAdata.put (ColumnLabel, ColumnValue);} // menginisialisasi objek tipe-t melalui refleksi if (mapMetadata.size ()> 0) {obj = clazz.newinstance (); for (map.entry <string, objek> entri: mapMetAdata.entryset () {map.entry <string, objek> entri: MapMetAdata.entryset ()) {) {) {) {) {) {) {) {MAP.Entry; entri.getValue (); // System.out.println (FieldKey + ":" + FieldValue); Reflectionutils.setfieldValue (obj, fieldkey, fieldvalue); // tetapkan nilai melalui refleksi}} // muat objek ke dalam container vektor vecrs.add (obj);}} catch (pengecualian e) {e.printstacktrace ();} return vecrs;}Metode seperti alat yang digunakan
Dapatkan koneksi database jdbctools.getConnection ()
/** Dapatkan koneksi ke database*/koneksi statis public getConnection () melempar Exception {connection conn = null; string driver = null; string jdbcurl = null; string username = null; string password = null; // dapatkan properti properti properti objek = properti baru (); inputStream in = = = Jdbctools.class.getClassLoader (). GetResourCeasStream ("jdbc.properties"); properties.load (in); driver = properties.getProperty ("driver"); jdbcurl = properties.getProperty ("jdbcurl"); ubername = properties =getproperty ("jdbcurl"); username = properties = properties. properties.getProperty ("kata sandi"); class.forname (driver); conn = driverManager.getConnection (jdbcurl, nama pengguna, kata sandi); return conn;}Reflectionutils.setfieldValue (OBJ, FieldKey, FieldValue);
Tetapkan atribut FieldKey dari objek OBJ ke FieldValue
// Atur atribut objek statis public static setFieldValue (objek obj, string fieldname, nilai objek) {field field = getDeclaredfield (obj, fieldname); if (field == null) {lempar target IllegalArgumentException baru ("tidak dapat menemukan bidang ["+ FieldName+ "pada Target ["+obj+"] ");} makeAccesSible (field); coba {field.set (obj, value);} catch (ilegalAccessException e) {System.out.println (" Pengecualian yang tidak dapat dilemparkan ");}} // menilai apakah pengubah lapangan adalah publik, dan mengubah izin aksesnya); bidang) {if (! Modifier.ispublic (field.getModifiers ())) {field.setAccessible (true);}} // Dapatkan atribut bidang, atribut dapat mewarisi bidang statis publik di kelas induk public static getDeclasedfield (objek obj, string fieldname) {for (class <? class <? clazz = clazz.getSuperclass ()) {coba {return clazz.getDeclaredfield (fieldName);} catch (exception e) {}} return null;}Meringkaskan
Di atas adalah penjelasan terperinci dari metode umum Java yang mengeksekusi pernyataan SQL untuk mengimplementasikan pertanyaan. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!