เมื่อเราต้องการพัฒนาวิธีการสอบถามฐานข้อมูลเรามักจะพบปัญหา: เราไม่ทราบว่าผู้ใช้จะป้อนเงื่อนไขใดดังนั้นเราจะจัดการคำสั่ง SQL ได้อย่างไรเพื่อให้วิธีการที่เราพัฒนาสามารถทำงานได้ตามปกติไม่ว่าพวกเขาจะยอมรับเงื่อนไขใด ในเวลานี้รายการ '1' = '1' Plus สามารถแก้ปัญหานี้ได้อย่างสมบูรณ์แบบ ไร้สาระน้อยลงเพิ่มรหัส:
// วิธีการสืบค้นฟัซซี่รายการสาธารณะ <person> แบบสอบถาม () {รายการ <person> list = new ArrayList <> (); การเชื่อมต่อ con = null; สแกนเนอร์ SC = เครื่องสแกนใหม่ (System.in); System.err.println ("ป้อนชื่อ:"); ชื่อสตริง = sc.nextline (); System.err.println ("ป้อน ID:"); string id = sc.nextline (); System.err.println ("ป้อนโทรศัพท์:"); สตริงโทร = sc.nextline (); System.err.println ("ป้อนเพศ:"); String sex = sc.nextline (); String SQL = "SELECT ID, NAME, TEL, SEX จากนักเรียน" // นี่คือเคล็ดลับการประกบสตริง + "โดยที่ 1 = 1"; รายการ <jobch> list1 = new ArrayList <Object> (); // ใช้แพ็คเกจ Commons-lang ถ้า (stringutils.isnotEmpty (ชื่อ)) {sql += "และชื่อเช่น?"; list1.add ("%" + ชื่อ + "%"); } if (! stringUtils.isEmpty (id)) {sql += "และเนื้อหาชอบ?"; list1.add ("%" + id + "%"); } if (! stringutils.isempty (โทรศัพท์)) {sql += "และ addr ชอบ?"; list1.add ("%" + โทร + "%"); } ลอง {con = dsutlis.getConnection (); // หลังจากคำสั่ง SQL ถูกแต่งขึ้นวัตถุ PST จะถูกสร้างขึ้น PreparedStatement PST = con.prepareStatement (SQL); // ตั้งค่าของ? สำหรับ (int i = 0; i <list1.size (); i ++) {pst.setObject (i+1, list.get (i)); } resultset rs = pst.executeQuery (); ในขณะที่ (rs.next ()) {บุคคล p = บุคคลใหม่ (); P.SetId (Rs.getString ("ID")); P.SetName (Rs.getString ("ชื่อ")); P.Settel (Rs.getString ("tel")); P.Setsex (Rs.getString ("Sex"). เท่ากับ ("1")? "ชาย": "หญิง"); list.add (p); } rs.close (); pst.close (); } catch (exception e) {e.printstacktrace (); } ในที่สุด {ลอง {con.close (); } catch (sqlexception e) {e.printstacktrace (); }} รายการส่งคืน; - คำอธิบายประกอบ:
1. รหัสด้านบนทำงานบนฐานข้อมูล Oracle:
สร้างนักเรียนตาราง (ID VARCHAR (32), ชื่อ VARCHAR (30), Tel Varcher (15), ตัวถ่านเพศ (1), ข้อ จำกัด Stud_PK หลัก (ID));
2. ใช้คลาสเครื่องมือเพื่อรับการเชื่อมต่อ
3. Prosson เป็น Javabean
ด้านล่างนี้เป็นคำแนะนำเกี่ยวกับวิธีการใช้ Java เพื่อสร้างผลลัพธ์แบบสอบถามฟัซซี่
นำเข้า java.io.*; นำเข้า Java.awt.*; นำเข้า Java.awt.event.*; นำเข้า Javax.swing.event.*; นำเข้า Javax.swing.event.*; นำเข้า Javax.swing.filechooser*; นำเข้า Java.util. // Flurry Query Public Class Media {Public Static Void Main (String args []) {jframe frame = new MediaFrame (); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setVisible (จริง); m; ส่วนตัว Jbutton btn; ส่วนตัว jbutton btn1; Jbutton ส่วนตัว btn2; ส่วนตัว jbutton btn3 ส่วนตัว jbutton ส่วนตัว btn4; jfilechooser ส่วนตัว; MediaFrame () {Settitle ("Media"); setSize (600,500); jMenubar เมนู = new JMenubar (); setjMenubar (เมนู); ฉลาก JLabel = new JLabel ("ชื่อเพลงสืบค้น:"); textfield = new jtoolbar (); m = ใหม่ defaultListModel (); list = new jlist (m); list.set.setFixedCellWidth (100); list.setSelectionMode (listselectionModel.multiple_interval_selection); list.addlistelectionlistener jfilechooser (); btn = new jbutton ("เพิ่มเพลง"); btn.addactionListener (นี่); btn1 = new jbutton ("ลบเพลง"); btn1.addactionListener (นี่); btn2 = new Jbutton jbutton ("มองหาแทร็ก"); btn3.addactionListener (นี่); btn4 = new jbutton ("การเรียงลำดับ"); btn4.addactionListener (นี่); jpanel panel = new jpanel (); panel.setLayout (ใหม่ gridlayout (5,1)); panel.add (btn); panel.add (btn1); panel.add (btn2); panel.add (btn3); panel.add (btn4); tb.setlayout (ใหม่ gridlayout (1,2)); tb.add (บานหน้าต่าง); tb.add (พาเนล); เพิ่ม (tb, borderlayout.west);} โมฆะสาธารณะ actionperformed (actionEvent event) {ถ้า (event.getSource () == btn) {i ++; result = chooser.showOpendialog (mediaframe.this); ถ้า (result == jfilechooser.approve_option) {system.out.println (i); ชื่อสตริง = chooser.getSelectedFile (). getPath (); str1 = ชื่อ; name1 = name.substring (str2+1, str1.length ()); // สกัดกั้นสตริงทั้งหมดก่อน "/" int str3 = name1.lastindexof ("."); สตริงชื่อ 2 = name1.substring (0, str3); hashtable.put (i, name2); m.add (0, hashtable.get (i)); system.out.println (hashtable);}} ถ้า (event.getSource () == btn1) {M.RemoveElement (event.getSource () == btn2) {system.out.println (m); i = 0; hashtable.clear (); m.clear ();} ถ้า (event.getSource () == btn3) {int [] a = int ใหม่ name = textfield.getText (); system.out.println (m.getSize ()); สำหรับ (j = 1; j <= m.getSize (); j ++) {รูปแบบ p = pattern.compile ("^"+name+"+"); (match.find ()) {s ++; // บันทึกโหนดดัชนีลงในอาร์เรย์ a [] a [s] = a [s]+m.getSize ()-j; system.out.println (hashtable.get (j)); system.out.println (a [s]);}} // e) {}} if (event.getSource () == btn4) {// int j; // สำหรับ (j = 0; j <m.length (); j ++) // {// ถ้า (hashtable.containsvalue (integer.parseint (j)+"*" ValueChanged (listselectionEvent Event) {System.out.println (list.getSelectedIndex ());}}ผ่านตัวอย่างทั้งสองนี้คุณมีความเข้าใจบางอย่างเกี่ยวกับวิธีการสอบถาม Java Fuzzy หรือไม่? ฉันหวังว่าคุณจะชอบบทความของบรรณาธิการและติดตามต่อไป!