web 开发中的条件查询实现
来源:互联网 发布:神漫画下载软件 编辑:程序博客网 时间:2024/05/19 13:31
在form表单中有如下代码
商品名称<input type="text" id="pname" name="pname" value="${condition.pname }"> 是否热门<select name="is_hot" id="is_hot"> <option value="">不限</option> <option value="1">是</option> <option value="0">否</option> </select> 商品类别<select name="cid" id="cid"> <option value="">不限</option> <c:forEach items="${categories }" var="category"> <option value="${category.cid }">${category.cname }</option> </c:forEach> </select> <input type="submit" value="搜索">商品类别为数据库中查询来的,表单提交到如下地址
action="${pageContext.request.contextPath}/adminSearchProduct" method="post"
在AdminSearchProductServlet中代码如下
实现
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//请求参数中有中文,需设置为utf-8Map<String, String[]> properties = request.getParameterMap();//获取form表单中的所有数据Condition condition = new Condition();try {BeanUtils.populate(condition, properties);//将数据封装到Condition Bean中} catch (IllegalAccessException | InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}AdminProductListService service = new AdminProductListService();//将数据传递带service层List<Product> products = null;try {products = service.findProductByCondition(condition);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//获取商品类别List<Category> categories = null;try {categories = service.findAllCategoryList();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}request.setAttribute("condition", condition);request.setAttribute("categories", categories);request.setAttribute("products", products);request.getRequestDispatcher("/admin/product/list.jsp").forward(request, response);}Condition类实现如下
package com.vo;public class Condition {private String pname;private String is_hot;private String cid;public String getPname() {return pname;}public void setPname(String pname) {this.pname = pname;}public String getIs_hot() {return is_hot;}public void setIs_hot(String is_hot) {this.is_hot = is_hot;}public String getCid() {return cid;}public void setCid(String cid) {this.cid = cid;}}
service层中
public List<Product> findProductByCondition(Condition condition) throws SQLException {ProductDao dao = new ProductDao();return dao.findProductByCondition(condition);}
public List<Product> findProductByCondition(Condition condition) throws SQLException {QueryRunner qRunner = new QueryRunner(DataSourceUtils.getDataSource());
StringBuffer sql = new StringBuffer("select * from product where 1=1 ");//任意设置一个初始的条件,为了下面方便的添加条件
List<String> parms = new ArrayList<>();
//根据Condition对象判断要添加的查询条件,并添加到SQL语句中
//商品名字为模糊查询,所以使用likeif (condition.getPname()!=null&&!condition.getPname().trim().equals("")) {sql.append(" and pname like ?");parms.add("%"+condition.getPname()+"%");}if (condition.getIs_hot()!=null&&!condition.getIs_hot().trim().equals("")){sql.append(" and is_hot= ? ");parms.add(condition.getIs_hot());}if (condition.getCid()!=null&&!condition.getCid().trim().equals("")) {sql.append(" and cid= ? ");parms.add(condition.getCid());}List<Product> products = qRunner.query(sql.toString(), new BeanListHandler<Product>(Product.class), parms.toArray());return products;}
阅读全文
0 0
- web 开发中的条件查询实现
- web开发中的多条件查询处理技巧1则
- java web中的多条件查询
- Java Web 中的多条件查询
- asp中的多条件组合查询实现
- web开发中的分页查询
- 蛙蛙推荐:asp中的多条件组合查询实现
- Tapestry 实现条件查询
- 实现按条件查询
- Mybatis实现条件查询
- 过滤条件中的子查询
- linq中的多条件查询
- hibernate中的criteria条件查询
- 测试查询中的状态条件的查询。
- hbase条件查询实现理论
- mongoTemplate实现多条件查询
- SSM实现多条件查询
- Jedis 实现多条件查询
- algorithm
- ERP系统
- Linux即时通讯应用系统的音视频功能实现 音视频SDK
- Android移动开发-使用SoundPool播放音效的实现
- Qt检测内存泄露-VLD
- web 开发中的条件查询实现
- Maven常见异常及解决方法
- 欢迎使用CSDN-markdown编辑器
- jquery/js 点击空白区域隐藏某一个层/元素
- 搭建virtualbox-centos虚拟环境
- 关于protected 修饰符你不曾注意到的地方
- Java基础之数据类型
- hbase笔记---新版api之对表的操作,指定region创建,普通创建,删除,修改列族信息
- 图像处理中Hough变换笔记