データベースを照会する方法を開発する必要がある場合、問題が発生することがよくあります。ユーザーが入力する条件がわからないため、どのようにして開発する方法が受け入れても正常に機能するようにSQLステートメントを処理するにはどうすればよいですか?この時点で、「1」= '1'プラスリストはこの問題を完全に解決できます。ナンセンスの少ない、コードを追加してください:
// fuzzy queryメソッドpublic list <person> query(){list <serpures> list = new arraylist <>();接続con = null;スキャナーSC =新しいスキャナー(System.in); system.err.println( "enter name:");文字列名= sc.nextline(); System.err.println( "ID:");文字列id = sc.nextline(); System.err.println( "Enter Tel:"); string tel = sc.nextline(); system.err.println( "enter sex:"); string sex = sc.nextline(); string sql = "id、name、tel、sex from sudents"を選択します "//ここにトリックがあります。 List <Object> list1 = new ArrayList <Object>(); // commons-langパッケージを使用if(stringutils.isnotempty(name)){sql += "およびtitle like?"; list1.add( "%" + name + "%"); } if(!stringutils.isempty(id)){sql += "and content like?"; list1.add( "%" + id + "%"); } if(!stringutils.isempty(tel)){sql += "and addr like?"; list1.add( "%" + tel + "%"); } try {con = dsutlis.getConnection(); // SQLステートメントが作成された後、PSTオブジェクトが生成されます。 predtatement PST = con.preparestatement(SQL); //の値を設定しますか? for(int i = 0; i <list1.size(); i ++){pst.setObject(i+1、list.get(i)); } resultSet rs = pst.executequery(); while(rs.next()){person p = new person(); P.SetID(rs.getString( "id")); P.SetName(rs.getString( "name")); P.Settel(rs.getString( "Tel")); P.SetSex(rs.getString( "sex")。 list.add(p); } rs.Close(); pst.close(); } catch(Exception e){e.printstacktrace(); }最後に{try {con.close(); } catch(sqlexception e){e.printstacktrace(); }} return list; }注釈:
1.上記のコードはOracleデータベースで動作します。
テーブル学生(ID Varchar(32)、名前Varchar(30)、Tel Varcher(15)、Sex Char(1)、Constraint Stud_PKプライマリキー(ID))を作成します。
2。ツールクラスを使用して接続を取得します
3。パソソンはハバベンです
以下は、Javaを使用してファジークエリの結果を作成する方法のガイドです
java.io。*;インポートJava.awt。*; Import java.awt.event。*; import javax.swing.event。*; Import javax.swing.event。*; Import javax.swing.filechooser。 // flurry query public class media {public static void main(string args []){jframe frame = new MediaFrame(); frame.setDefaultCloseOperation(jframe.exit_on_close); frame.setVisible(true);}} class mediaframe拡張jframe rements actionlistener、ristelectionListener adelistener M; Private Jbutton Btn; Private JButton Btn1; Private JButton Btn2; Private JButton Btn3; Private JButton Btn4; Private JfileChooser Chooser; Private JTextField Textfield; Map Hashtable = new Hashtable(); Private Int i = 0; Public 0; MediaFrame(){settitle( "Media"); setSize(600,500); jmenubarメニュー= new jmenubar(); setjmenubar(); setjmenubar(menu); jlabel label = new jlabel( "query song name:"); textfield = new jtextfield(); menu.add(textfield); menu.add(add(new jtoolbar(); m = new defaultListModel(); list = new JList(M); list.setFixedCellWidth(100); list.setselectionMode(listselectionModel.Multiple_interval_Selection; jfilechooser(); btn = new jbutton( "add song"); btn.addactionlistener(this); btn1 = new jbutton( "Delete Song"); btn1.addactionListener(this); btn2 = new jbutton( "Clear list"); jbutton( "look for track"); btn3.addactionlistener(this); btn4 = new jbutton( "sorting"); btn4.addactionlistener(this); jpanelパネル= new jpanel(); panel.setlayout(new gridlayout(5,1)); panel.add(btn); panel.add(btn1); panel.add(btn2); panel.add(btn3); panel.add(btn4); tb.setlayout(new gridlayout(1,2)); tb.add(pane); tb.add(panel); add(tb、borderlayout.west);} public void actionperformed(actionevent event){if(event.getSource()== btn){i ++; chooser.setcurrentdirectory(int result = chooser.showopendialog(mediaframe.this); if(result == jfilechooser.approve_option){system.out.println(i); string name = chooser.getSelectedFile() name1 = name.substring(str2+1、str1.length()); //最後の "/" int str3 = name1.lastindexof( "。"); string name2 = name2 = name1.substring(0、str3); //すべての文字列上の接尾辞を挿入した後、 "。 hashtable.put(i、name2); m.add(0、hashtable.get(i)); system.out.println(hashtable);}} if(event.getSource()== btn1){m.removeElement(list.getSelectedvalue()); system.out.Out.Out.Out.Out.Out.Outln(M); (event.getSource()== btn2){system.out.println(m); i = 0; hashtable.clear(); m.clear();} if(event.getSource()== btn3){int [] a = new int [m.getsize()]; try {int j; string name = textfield.getText(); system.out.println(m.getsize()); for(j = 1; j <= m.getsize(); j ++){pattern 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]);} // {}} if(event.getSource()== btn4){// int j; //(j = 0; j <m.length(); j ++)// if(hashtable.containsvalue(integer.parseint(j)+"*") event){system.out.println(list.getSelectedIndex();}}これらの2つの例を通して、Java Fuzzyクエリメソッドを特定していることはありますか?編集者の記事が気に入って、それに続くことを願っています!