Ketika kita perlu mengembangkan metode untuk menanyakan database, kita sering menghadapi masalah: kita tidak tahu kondisi apa yang akan dimasukkan pengguna, jadi bagaimana kita bisa menangani pernyataan SQL sehingga metode yang kita kembangkan dapat bekerja secara normal tidak peduli kondisi apa yang mereka terima? Pada saat ini, di mana '1' = '1' Plus daftar dapat dengan sempurna menyelesaikan masalah ini. Kurang omong kosong, tambahkan kode:
// Metode Permintaan Fuzzy Daftar Publik <Fon> query () {List <Fon> Daftar = ArrayList baru <> (); Koneksi con = null; Pemindai SC = Pemindai Baru (System.in); System.err.println ("Masukkan Nama:"); String name = sc.nextline (); System.err.println ("Enter ID:"); String id = sc.nextline (); System.err.println ("Masukkan tel:"); String tel = sc.nextline (); System.err.println ("Enter sex:"); String sex = sc.nextline (); String sql = "Pilih ID, Nama, Tel, Seks dari Siswa" // Ini triknya, string yang cukup splicing + "di mana 1 = 1"; Daftar <POMPENT> LIST1 = NEW ARRAYLIST <POMPERTIFT> (); // Gunakan paket commons-lang if (stringutils.isnotempty (name)) {sql += "dan judul seperti?"; list1.add ("%" + name + "%"); } if (! stringutils.isempty (id)) {sql += "dan konten seperti?"; list1.add ("%" + id + "%"); } if (! stringutils.isempty (tel)) {sql += "dan addr like?"; list1.add ("%" + tel + "%"); } coba {con = dsutlis.getConnection (); // Setelah pernyataan SQL disusun, objek PST dihasilkan. Disiapkan pst = con.preparestatement (sql); // Tetapkan nilainya? untuk (int i = 0; i <list1.size (); i ++) {pst.setObject (i+1, list.get (i)); } Hasil rs = pst.executeQuery (); while (rs.next ()) {person p = orang baru (); p.setid (rs.getString ("id")); p.setname (rs.getString ("name")); p.settel (rs.getString ("tel")); p.setsex (rs.getString ("sex"). Equals ("1")? "Pria": "wanita"); list.add (p); } rs.close (); pst.close (); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {coba {con.close (); } catch (sqlexception e) {e.printstacktrace (); }} daftar pengembalian; } anotasi:
1. Kode di atas beroperasi pada database Oracle:
Buat tabel siswa (id varchar (32), nama varchar (30), tel varcher (15), sex char (1), kendala stud_pk kunci utama (id));
2. Gunakan kelas alat untuk mendapatkan koneksi
3. Proson adalah seorang Javabean
Di bawah ini adalah panduan cara menggunakan java untuk membuat hasil kueri fuzzy
impor java.io.*; impor java.awt.*; impor java.awt.event.*; impor javax.swing.event.*; impor javax.swing.event.*; import javax.swing.filechooser.*; impor java.util.*; impor java.util.regex. // Permintaan Kelas Publik Media {public static void main (string args []) {jFrame frame = new MediaFrame (); frame.setDefaultcloseOperation (jframe.exit_on_close); frame.setVisible (true);} class mediaframe memperluas jframe melibatkan Actionlistener, ListelSelSelSelSelSelSelSelSelSelSelSelSelSELECE; Jbutton btn; private jbutton btn1; private jbutton btn2; private jbutton btn3; private jbutton btn4; private jfilechooser chooser; private jtextfield textfield; peta hashtable = new hashtable (); private int i = 0; int s = 0; Mediaframe () {settitle ("media"); setsize (600.500); jmenubar menu = new jmenubar (); setjMenubar (menu); jlabel label = new jlabel ("name lagu query:"); textfield = new jTextField (); menu.add (label); JToolBar();m=new DefaultListModel();list=new JList(m);list.setFixedCellWidth(100);list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);list.addListSelectionListener(this);JScrollPane pane=new JScrollPane(list);chooser=new Jfilechooser (); btn = new jbutton ("add song"); btn.addactionListener (ini); btn1 = jbutton baru ("hapus lagu"); btn1.addactionlistener (ini); btn2 = new jbutton ("clear list"); btn.adn2); btn2 = new jbutton ("clear list"); btn2.adner (ini); ini = new jbutton ("clear list"); btn2.adner (ini) = new jbutton ("clear list"); btn2.adner); lacak "); btn3.addactionListener (ini); btn4 = jbutton baru (" penyortiran "); btn4.addactionlistener (ini); jpanel panel = jpanel baru (); panel.setlayout (baru Gridlayout (5,1)); panel.add (btn); panel.add (btn1); panel.add (btn2); panel.add (btn3); panel.add (btn4); tb.setlayout (baru Gridlayout (1,2)); tb.add (pane); tb.add (panel); add (tb, borderlayout.west);} public void actionPerformed (ActionEvent Event) {if (event.getSource () == btn) {i ++; chooser.setSurrentDire () == btn) {i ++; chooser.setSurrentDire () == BTN) {i ++; chooser.setCurrentDire () = Hasil = chooSer.showopendialog (mediaframe.this); if (result == jfileChooser.approve_option) {System.out.println (i); name string = chooser.getSelectedFile (). getPath (); string str1 = name; int str2 = name. name1 = name.substring (str2+1, str1.length ()); // mencegat semua string sebelum yang terakhir "/" int str3 = name1.LastIndexof ("."); string name2 = name1.substring (0, str3); // mencegat semua string suffixes setelah "." hashtable.put (i, name2); m.add (0, hashtable.get (i)); System.out.println (hashtable);}} if (event.getSource () == btn1) {m.removeElement (list.getSelectedValue ()); System.out.printll (m) ife (list.getSelectedValue ()); System.out.out.printl (list (event.getSource () == btn2) {System.out.println (m); i = 0; hashtable.clear (); m.clear ();} if (event.getSource () == btn3) {int [] a = int [m.getSize ()]; coba {int j; name = textfield.getText (); System.out.println (m.getSize ()); for (j = 1; j <= m.getSize (); j ++) {pola p = Pola.compile ("^"+name+"+"); // Regular Expression Memilih Semua Hasil Permintaan yang Dipimpin oleh Kata yang Anda Isi Pencocokan+"+"); (match.find ()) {S ++; // Catat node indeks ke dalam array a [] a [s] = a [s]+m.getsize ()-j; System.out.println (hashtable.get (j)); System.out.println (a [s]);}} // Anda tidak dapat memilih banyak opsi (karena JLIST ditetapkan sebelumnya, Anda dapat memilih beberapa opsi. E) {}} if (event.getSource () == btn4) {// int j; // for (j = 0; j <m.length (); j ++) // {// if (hashtable.containsvalue (integer.parseint (j)+"*") // hashtable.put (jme) ValueChanged (acara ListSelectionEvent) {System.out.println (list.getSelectedIndex ());}}Melalui dua contoh ini, apakah Anda memiliki pemahaman tertentu tentang metode kueri java fuzzy? Saya harap Anda menyukai artikel editor dan terus mengikutinya!