一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

Java模糊查詢方法詳解

2020-04-22 11:27java教程網 JAVA教程

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

當我們需要開發一個方法用來查詢數據庫的時候,往往會遇到這樣一個問題:就是不知道用戶到底會輸入什么條件,那么怎么樣處理sql語句才能讓我們開發的方法不管接受到什么樣的條件都可以正常工作呢?這時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);
      // 設置?的值
      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數據庫:

?
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做模糊查詢結果

?
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+"+");//正則表達式選取以你填的單詞為首的所有查詢結果
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模糊查詢方法有了一定的了解,希望大家喜歡小編的文章,繼續關注哦!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品高潮呻吟99AV无码视频 | 国产自产2023最新麻豆 | 性啪啪chinese东北女人 | 精品亚洲综合久久中文字幕 | 777奇米影视一区二区三区 | 日产国产精品亚洲系列 | 国产成人高清亚洲一区91 | 日本黄色一区 | 九色PORNY真实丨国产大胸 | blacked亚裔videoshd| 四虎影视在线影院在线观看观看 | 午夜精品久久久久久久2023 | 456亚洲老头视频 | 亚洲免费精品 | 青青青草国产线观 | 欧美人与牲动交xxx 欧美人妖另类性hd 欧美人人干 | 毛茸茸的大逼 | 肥胖老寡妇做性 | 好紧好爽的午夜寂寞视频 | 亚洲性色永久网址 | 精品国产福利一区二区在线 | 国产高清在线精品一区二区 | 亚洲欧美日韩成人一区在线 | 欧美1区 | 睡男神的这件小事小说在线阅读 | 成人国产精品视频 | 91久久综合 | 四虎国产精品免费入口 | 好男人在线观看免费高清2019韩剧 | 香蕉免费一区二区三区在线观看 | 免费369看片入口 | 免费一级国产生活片 | 四虎影库网址 | 天美影视传媒mv直接看 | 国产免费丝袜调教视频 | 国产一级片视频 | а天堂中文最新版在线 | 超级乱淫1 | 黄在线观看www免费看 | 精品视频一区二区 | 国产美女亚洲精品久久久久久 |