jqGrid分页技术学习(九)spring jdbc多单条件组合查询
2011-03-29 07:29
791 查看
TablePagingController对多条件组合查询的判断:
TablePagingDao对多条件组合查询的处理:
...... if (search) {// _search:true // filters:{"groupOp":"AND","rules":[{"field":"id","op":"ne","data":"5"},{"field":"amount","op":"gt","data":"100"}]} String filters = request.getParameter("filters"); if (filters != null && filters.length() > 0) { logger.info("Res-Host request filters=[" + filters + "]"); final JQGridPTO<InvHeader> pto = this.getDao() .queryByMultiCondition(page, rows, sidx, sord, filters); model.put("JSON_OBJECT", pto); ......
TablePagingDao对多条件组合查询的处理:
/** * 多条件表单查询 * * @param pageNo * @param pageSize * @param sidx * @param sord * @return */ public JQGridPTO<InvHeader> queryByMultiCondition(final int pageNo, final int pageSize, final String sidx, final String sord, final String filters) { List<Criterion> criteria = Collections.emptyList(); criteria = new ArrayList<Criterion>(); // 通过searchField、searchString、searchOper生成通用的查询条件 CriterionUtil util = new CriterionUtil(); criteria.addAll(util.generateSearchCriteriaFromFilters(filters)); final String conditionSql = Criterion.convertToSql(criteria); logger.info("Condition SQL: [" + conditionSql + "]"); final Object[] array = new Object[criteria.size()]; for (int i = 0; i < criteria.size(); i++) { Criterion c = criteria.get(i); logger.info("Criteria value: [" + c.getValue() + "]"); array[i] = c.getValue(); } JdbcTemplate jdbcTemplate = this.getJdbcTemplate(); PaginationHelper<InvHeader> ph = new PaginationHelper<InvHeader>(); final String countSql = "SELECT count(*) FROM invheader" + " WHERE " + conditionSql; final String seaechSql = "SELECT id, invdate, client_id, amount, tax, total, closed, ship_via, note" + " FROM invheader" + " WHERE " + conditionSql + " ORDER BY " + sidx + " " + sord; return ph.fetchPage(jdbcTemplate, countSql, seaechSql, array, pageNo, pageSize, new ParameterizedRowMapper<InvHeader>() { public InvHeader mapRow(ResultSet rs, int i) throws SQLException { InvHeader data = new InvHeader(); data.setId(rs.getInt(1)); data.setInvdate(rs.getString(2)); data.setClient_id(rs.getInt(3)); data.setAmount(rs.getFloat(4)); data.setTax(rs.getFloat(5)); data.setTotal(rs.getFloat(6)); data.setClosed(rs.getString(7)); data.setShip_via(rs.getString(8)); data.setNote(rs.getString(9)); return data; } }); }
相关文章推荐
- jqGrid分页技术学习(八)spring jdbc 单条件查询
- jqGrid分页技术学习(六)spring jdbc 通用DAO——查询所有记录
- jqGrid分页技术学习(七)spring jdbc 分页查询DAO
- jqGrid分页技术学习(三)spring jdbc 通用DAO——添加一条记录
- jqGrid分页技术学习(四)spring jdbc 通用DAO——删除一条记录
- jqGrid分页技术学习(五)spring jdbc 通用DAO——修改一条记录
- 【重点###】SpringDataJPA的组合条件分页查询(笔记思路,便于忘了复习)页面:EasyUI
- jqGrid分页技术学习(二)spring环境准备
- Spring Data JPA 复杂/多条件组合分页查询
- Spring Data JPA 复杂/多条件组合分页查询
- springboot干货——(十四【二】)mongodb进行分页显示【含条件查询】
- 【JAVAWEB学习笔记】21_多条件查询、attr和prop的区别和分页的实现
- 20160327servlet学习笔记分页技术三层过滤的sql分页查询
- Spring Data JPA 复杂/多条件组合查询
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
- SQL Server 2005 技术内幕 TSQL查询学习笔记chapter4之三排名函数Row_number()和分页应用
- Spring 多条件查询分页功能
- Struts+Spring+Hibernate+Freemarker技术组合以及多功能分页系统
- 框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)
- Struts+Spring+Hibernate+Freemarker技术组合以及多功能分页系统