国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java模糊查詢方法詳解

2019-11-26 14:24:25
字體:
來源:轉載
供稿:網友

當我們需要開發一個方法用來查詢數據庫的時候,往往會遇到這樣一個問題:就是不知道用戶到底會輸入什么條件,那么怎么樣處理sql語句才能讓我們開發的方法不管接受到什么樣的條件都可以正常工作呢?這時where '1'='1'加上list就可以完美解決這個問題了,廢話少說,上代碼:

// 模糊查詢方法  public List<person> query() {    List<person> list = new ArrayList<>();    Connection con = null;    Scanner sc = new Scanner(System.in);    System.err.println("enter name:");    String name = sc.nextLine();    System.err.println("enter id:");    String id = sc.nextLine();    System.err.println("enter tel:");    String tel = sc.nextLine();    System.err.println("enter sex:");    String sex = sc.nextLine();    String sql = "select id,name,tel,sex from students "        // 技巧在此,合理拼接字符串        + "where 1=1";    List<Object> list1 = new ArrayList<Object>();    //使用 commons-lang包    if (StringUtils.isNotEmpty(name)) {      sql += " and 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對象      PreparedStatement 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").equals("1") ? "男" : "女");        list.add(p);      }      rs.close();      pst.close();    } catch (Exception e) {      e.printStackTrace();    } finally {      try {        con.close();      } catch (SQLException e) {        e.printStackTrace();      }    }    return list;  }

注解:
1、以上代碼操作一個Oracle數據庫:

create table students(id varchar(32),name varchar(30),tel varcher(15),sex char(1),constraint stud_pk primary key(id));

2、使用工具類獲取Connection
3、proson是一個javabean

下面教大家如何用Java做模糊查詢結果

import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.filechooser.*;import java.util.*;import java.util.regex.*; //模糊查詢public class Media{public static void main(String args[]){JFrame frame=new MediaFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}class MediaFrame extends JFrame implements ActionListener,ListSelectionListener{private JList list;private DefaultListModel 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;int s=0;public MediaFrame(){setTitle("Media");setSize(600,500);JMenuBar menu=new JMenuBar();setJMenuBar(menu);JLabel label=new JLabel("查詢的歌曲名:");textField=new JTextField();menu.add(label);menu.add(textField);JToolBar TB=new 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("添加歌曲");btn.addActionListener(this);btn1=new JButton("刪除歌曲");btn1.addActionListener(this);btn2=new JButton("清空列表");btn2.addActionListener(this);btn3=new JButton("查找曲目");btn3.addActionListener(this);btn4=new JButton("排序");btn4.addActionListener(this);JPanel panel=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(new File("."));int result=chooser.showOpenDialog(MediaFrame.this);if (result==JFileChooser.APPROVE_OPTION){System.out.println(i);String name=chooser.getSelectedFile().getPath();String str1=name;int str2=name.lastIndexOf("http://");String name1=name.substring(str2+1,str1.length());//截取最后一個"/"之前的所有字符串 int str3=name1.lastIndexOf(".");String 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.println(m);}if (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+"+");//正則表達式選取以你填的單詞為首的所有查詢結果Matcher match=p.matcher((String)hashtable.get(j));if (match.find()){s++; //記錄索引結點到數組中a[]中a[s]=a[s]+m.getSize()-j;System.out.println(hashtable.get(j));System.out.println(a[s]);}} //可以選擇不多個選項(因為前面設置了JList可以多項選擇)list.setSelectedIndices(a);}catch (Exception e){}}if (event.getSource()==btn4){//int j;//for (j=0;j<m.length();j++)//{//if (hashtable.containsValue(Integer.parseInt(j)+"*")//hashtable.put(j,//}}}public void valueChanged(ListSelectionEvent event){System.out.println(list.getSelectedIndex());}}

通過這兩個實例大家是否對java模糊查詢方法有了一定的了解,希望大家喜歡小編的文章,繼續關注哦!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻江县| 宝坻区| 方山县| 新和县| 安宁市| 南和县| 平原县| 湛江市| 甘谷县| 将乐县| 保亭| 拉萨市| 青州市| 洛扎县| 延长县| 永州市| 青浦区| 无极县| 盈江县| 南乐县| 湛江市| 荃湾区| 三明市| 新沂市| 永新县| 上林县| 仁怀市| 会泽县| 合江县| 五常市| 阳城县| 贺兰县| 常德市| 南康市| 淳化县| 澄迈县| 仙游县| 进贤县| 金湖县| 翁牛特旗| 禹州市|