激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java模糊查詢方法詳解

Java模糊查詢方法詳解

2020-04-22 11:27java教程網(wǎng) JAVA教程

這篇文章主要為大家詳細介紹了Java模糊查詢方法的實現(xiàn),實例教你如何用Java做模糊查詢結(jié)果,感興趣的小伙伴們可以參考一下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// 模糊查詢方法
  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);
      // 設(shè)置?的值
      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數(shù)據(jù)庫:

?
1
2
3
4
5
6
7
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做模糊查詢結(jié)果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
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("//");
 
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+"+");//正則表達式選取以你填的單詞為首的所有查詢結(jié)果
Matcher match=p.matcher((String)hashtable.get(j));
 
if (match.find())
{
s++;
 
 
 
//記錄索引結(jié)點到數(shù)組中a[]中
a[s]=a[s]+m.getSize()-j;
System.out.println(hashtable.get(j));
System.out.println(a[s]);
}
 
}
 
 
 
//可以選擇不多個選項(因為前面設(shè)置了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模糊查詢方法有了一定的了解,希望大家喜歡小編的文章,繼續(xù)關(guān)注哦!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 手机国产乱子伦精品视频 | 91免费版在线 | 91成人久久| av色哟哟| 91久久久久久亚洲精品禁果 | 毛片在线视频观看 | 久草在线视频网 | 国产成人高潮免费观看精品 | 成av在线 | 久久色播 | 成人在线视频免费播放 | lutube成人福利在线观看污 | 成人毛片视频在线观看 | 偿还的影视高清在线观看 | 久久αv | 最近日本电影hd免费观看 | 日本在线观看一区二区 | 九九热在线视频观看 | 狠狠久久 | 免费视频www在线观看 | 久久影院免费观看 | 斗破苍穹在线观看免费完整观看 | 欧美日本综合 | 国产免费小视频在线观看 | wankzhd| 毛片电影在线看 | a视频在线看 | 亚洲午夜1000理论片aa | 高清成人在线 | 国产精品成人免费一区久久羞羞 | 九一免费在线观看 | 免费黄色av| 国产成人精品免费视频大全最热 | h色视频在线观看 | 久久草在线看 | 国产精品久久久久久久久久10秀 | 2019亚洲日韩新视频 | 在线看三级 | 欧美中文字幕在线视频 | 亚洲人片在线观看 | 成人免费自拍视频 |