java实现内存模糊搜索,模糊查询内存查询java实现

作者:因情语写

链接:https://www.proprogrammar.com/article/287

声明:请尊重原作者的劳动,如需转载请注明出处

下面说说看到的工作项目中的代码,是这个样子的,事先查询一次数据库,将查询到的整张表的数据存到内存,以后使用时不再查询数据库,而直接操作内存中的数据,这主要用于数据库中的数据比较稳定,不会轻易改变的情况,比如法律条款,医疗术语,拿到这些数据主要是用于模糊查询,我对相关代码进行了改动,把原来固定的通过某些字段的模糊查询改为可选择通过哪些字段进行模糊查询,下面看一下代码

8cac7014cc0d4247a57734a40c487292.png

控制层,服务层没什么可说的,直接看代码

package study.fuzzysearch.controller;

import java.util.List;

import study.fuzzysearch.bean.User;

import study.fuzzysearch.service.UserService;

public class UserController {

public List getUserByFuzzySearch(String searchStr, String[] searchFields, boolean startMatch)

{

return new UserService().getUserByFuzzySearch(searchStr, searchFields, startMatch);

}

}

package study.fuzzysearch.service;

import java.util.List;

import study.fuzzysearch.bean.User;

import study.fuzzysearch.dao.UserDao;

public class UserService {

public List getUserByFuzzySearch(String searchStr, String[] searchFields, boolean startMatch)

{

return new UserDao().getUserByFuzzySearch(searchStr, searchFields, startMatch);

}

}

DAO层实现如下

package study.fuzzysearch.dao;

import java.util.List;

import study.fuzzysearch.bean.User;

import study.fuzzysearch.interf.Filter;

import study.fuzz

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,实现模糊搜索查询功能可以使用SQL语句中的LIKE操作符,配合通配符%或_使用。具体的实现步骤如下: 1. 获取用户输入的搜索关键字。 2. 构建SQL语句,使用LIKE操作符和通配符%来实现模糊搜索。例如,如果用户输入的关键字为“apple”,则可以使用如下的SQL语句进行搜索: SELECT * FROM products WHERE name LIKE '%apple%'; 其中,products为要搜索的表名,name为要搜索的字段名,%apple%即为搜索的关键字。 3. 执行SQL语句,获取查询结果。 4. 将查询结果返回给用户。 下面是一个简单的Java代码示例,用于实现模糊搜索查询功能: ``` public List<Product> searchProducts(String keyword) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List<Product> result = new ArrayList<>(); try { // 连接数据库 conn = getConnection(); // 构建SQL语句 String sql = "SELECT * FROM products WHERE name LIKE ?"; // 创建PreparedStatement对象 stmt = conn.prepareStatement(sql); // 设置参数 stmt.setString(1, "%" + keyword + "%"); // 执行查询 rs = stmt.executeQuery(); // 遍历结果集 while (rs.next()) { Product product = new Product(); product.setId(rs.getInt("id")); product.setName(rs.getString("name")); product.setPrice(rs.getDouble("price")); // 将查询结果添加到列表中 result.add(product); } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接 close(conn, stmt, rs); } return result; } ``` 在上述代码中,getConnection()方法用于获取数据库连接,close()方法用于关闭连接和释放资源。Product是一个JavaBean,用于表示查询结果的数据结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值