实现Java模糊查询可以通过正则表达式、字符串匹配或者使用数据库的LIKE语句来实现。下面将介绍使用数据库的LIKE语句来实现Java模糊查询的方法。
流程图
flowchart TD
start[开始]
input[输入查询关键字]
connect1[连接数据库]
query[执行模糊查询]
display[显示查询结果]
end[结束]
start --> input
input --> connect1
connect1 --> query
query --> display
display --> end
状态图
stateDiagram
[*] --> 输入查询关键字
输入查询关键字 --> 连接数据库
连接数据库 --> 执行模糊查询
执行模糊查询 --> 显示查询结果
显示查询结果 --> [*]
代码示例
首先,需要创建数据库连接并准备好要查询的数据表。假设我们有一个学生信息表student
,包含id
和name
两列。下面是创建数据表的示例代码:
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(100)
);
接下来,我们需要编写Java代码连接数据库并执行模糊查询。假设我们要查询学生姓名包含关键字"张"的学生信息,下面是示例代码:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class FuzzyQueryExample {
public static void main(String[] args) {
String keyword = "张";
// 1. 连接数据库
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
} catch (SQLException e) {
e.printStackTrace();
}
// 2. 执行模糊查询
List<String> result = new ArrayList<>();
if (connection != null) {
try {
PreparedStatement statement = connection.prepareStatement("SELECT * FROM student WHERE name LIKE ?");
statement.setString(1, "%" + keyword + "%");
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
String name = resultSet.getString("name");
result.add(name);
}
resultSet.close();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 3. 显示查询结果
for (String name : result) {
System.out.println(name);
}
// 4. 关闭数据库连接
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们首先通过DriverManager.getConnection()
方法连接到本地MySQL数据库。然后,我们使用PreparedStatement
来执行带有占位符?
的SQL语句。占位符?
将在执行查询时被实际的关键字替换。在这个例子中,我们使用LIKE
语句来实现模糊查询,并在查询时将关键字拼接成%关键字%
的形式,表示包含关键字即可。最后,我们通过遍历查询结果集并打印出结果来显示查询结果。
需要注意的是,上述代码中的数据库连接信息和查询语句需要根据实际情况进行修改。
通过以上步骤,我们就可以实现Java模糊查询了。