Java实现模糊查询

一、前端页面的代码

	<div>
			<form action="${pageContext.request.contextPath}/ProductServlet" method="get">
				<input type="hidden" name="action" value="findAllProductsByTJ">
				<select name="cid">
					<c:forEach items="${categoryList}" var="category">
						<option value="${category.cid}">${category.cname}</option>
					</c:forEach>
				</select>
				<input type="text" name="pname">
				<input type="submit" value="搜索">
			</form>
		</div>

页面的样式:

<style type="text/css">
			div{
				position:absolute;/*绝对定位*/
				left:529px;
				top:80px;
			}
		</style>

点击搜索,提交表单后,跳转到ProductServlet执行代码:

/*
    *多条件组合查询
    * */
    public void findAllProductsByTJ(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException {
        //获得请求参数 cid pname
        String cid=request.getParameter("cid");
        String pname=request.getParameter("pname");
        //调用service 层多条件组合查询的方法
        List<Product> productList=service.findAllProductsByTJ(cid,pname);
        //将查询结果保存request域中
        request.setAttribute("productList",productList );
        //转发到product_list.jsp
        request.getRequestDispatcher("/product_list.jsp").forward(request,response );
    }

service层代码:

/*
    * 多条件组合查询
    * */
    public List<Product> findAllProductsByTJ(String cid, String pname) {
        return dao.findAllProductsByTJ(cid,pname);
    }

dao层代码:

/*
    * 多条件查询
    * */
    public List<Product> findAllProductsByTJ(String cid, String pname) {
        //1.获得JDBCTemplate
        JdbcTemplate template=new JdbcTemplate(DRUIDUtils.getDataSource());
        //2.编写临时SQL语句
        StringBuilder sb=new StringBuilder("select * from product where 1=1 ");
        //3.定义一个list集合存储SQL语句占位符的值
        ArrayList<Object> list=new ArrayList<>();
        //判断cid
        if(cid!=null && !cid.trim().equals("")){
            sb.append("and cid=? ");
            list.add(cid);
        }
        //判断pname
        if(pname!=null && !pname.trim().equals("")){
            sb.append("and pname like ?");
            list.add(pname);
        }
        //生成最终SQL语句
        String sql=sb.toString();
        //设置实际参数
        Object[] params=list.toArray();
        //执行查询操作
        List<Product> products=template.query(sql,new BeanPropertyRowMapper<>(Product.class) ,params );
        return products;
    }
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值