Java模糊查询

这篇博客介绍了如何在Java中实现SQL模糊查询。通过编写一个包含LIKE条件的SQL语句,并检查输入参数来执行模糊查找。同时,文章也展示了处理请求参数以防止乱码的方法,以及如何使用PreparedStatement执行查询并获取结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先写一个SQL语句:
String sqlblor=“select * from b_station as s where s.SubordinateRegion LIKE ? or s.SubordinateName LIKE ? or s.StationUnit LIKE ? or s.StationName LIKE ? or s.StationCode LIKE ? limit ?,?”;
然后传入要查询的数据,判断传入的数据不能为空,是否进行模糊查询。
在这里插入图片描述

获取页面传过来的数据,
private void selectSt(HttpServletRequest request, HttpServletResponse response) throws IOException {
String find = request.getParameter(“isnot”);
String page = request.getParameter(“page”);
String limit = request.getParameter(“limit”);
List list = new ArrayList();
如果乱码的话,要转换一下格式,代码如下:
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”) response.setContentType(“text/html; charset=UTF-8”);

然后查询,查询成功则返回查询结果,否则提示从出错。
public stations pub(int id,String sql) {
stations station=new stations();
if (id==0) {
System.out.println(“ID不能为”+id);
return null;
}
try {
conn = DbUtil.getConnection();// 链接数据库
ps = conn.prepareStatement(sql);// 预执行数据库语句
ps.setInt(1, id);
rs=ps.executeQuery();//返回结果集

		while (rs.next()) {
			stations st=new stations();
			st.setBillIid(rs.getInt("BillID"));
			st.setDeparturn(rs.getTimestamp("DepartureDate"));
			st.setStationid(rs.getInt("StationID"));
			st.setStcode(rs.getString("StationCode"));
			st.setStname(rs.getString("StationName"));
			st.setStunit(rs.getString("StationUnit"));
			st.setSubname(rs.getString("SubordinateName"));
			st.setSubre(rs.getString("SubordinateRegion"));
			st.setTicket(rs.getTimestamp("Ticket"));
			st.setTicketgate(rs.getInt("TicketGate"));
			st.setVehicleid(rs.getInt("VehicleID"));
			station=st;
		}
	} catch (SQLException e) {
		System.out.println("车站查询出错");
		e.getStackTrace();
	}finally {
		DbUtil.close(conn, ps, rs);//关闭连接
	}

return station;
这是我对查询的理解,不是很全面,有可能有错误,如果我理解错了请多多指教!
!](https://img-blog.csdnimg.cn/20201205221023249.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU2MDc5Ng==,size_16,color_FFFFFF,t_70#pic_center)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值