SSH动态查询封装接口介绍

1.查询记录总条数

public int count(Class c,Object[][] eq,Object[][] like,String[] group,String[] asc,String[] desc);

2.分页动态查询记录

public List<?> search(Class c,Object[][] eq,Object[][] like,String[] group,String[] asc,String[] desc,int start, int limit);

首先介绍两个查询接口的公有参数:

Class c : bean.class,即映射到你查询的表结构的实体类

Object[][] eq : 精确查询的参数name和value集合

{{name,”小明”},{code,”TB321”},...}

Object[][] like :模糊查询的参数name和value集合

{{startTime,”2013-10”},{name,”小”},...}

String[] group :要分组的参数name列表

String[] asc :对查询结果升序排列所需的参数name集合

String[] desc :对查询结果降序排列所需的参数name集合

这里提到的name非数据库字段名,而是bean的属性名,当然如果存在表关联,

以用户和职位为例,User 和 Dept关联,存在Dept dept;

则如果要查询职位名为xxx的所有User,name可填写为 dept.name,eq某一集合可填写为{”dept.name”,”xxx”}

分页动态查询记录独有的接口参数:

int start :从第几条记录开始查询

int limit :本页查询的最大记录数

参数列表除Class c不可为空外,其余参数皆可为空。对集合参数中的不法数据(子集合填写不完整、参数为null or “”实现自动过滤)

根据你的不同需求使用接口相应参数,以合同表为例:

精确查询:根据合同编号、合同名称、客户代表等精确信息实现查询

模糊查询:根据合同签订、生效、失效、制表年、月、日等模糊时间,部分合同名称等不精确参数实现查询

组合查询:根据页面需求在action获取相应参数(页面参数统一使用String接收,避免int出现默认为0的情况发生。在action使用Object对所获value进行统一类型设置),根据不同的参数进行单个、多个条件的组合查询。

意义:简化代码,所有类(表结构)的查询都可组合使用这两个接口。

便于维护,一旦查询需求有改动,只需更改页面参数和action接收参数即可

不足:未实现比较范围(> = < between and)的查找(可按需实现)。以及对一些参数(数量总计、平均值)的特殊查找,此类查询非公有故弃之.

下一章介绍接口的具体实现

SSH动态查询封装接口介绍的更多相关文章

  1. JPA动态查询封装

    一.定义一个查询条件容器 /** * 定义一个查询条件容器 * * @param <T> */ public class Criteria<T> implements Spec ...

  2. spring data jpa 动态查询(工具类封装)

    利用JPA的Specification<T>接口和元模型就实现动态查询了.但是这样每一个需要动态查询的地方都需要写一个这样类似的findByConditions方法,小型项目还好,大型项目 ...

  3. spring data jpa封装specification实现简单风格的动态查询

    github:https://github.com/peterowang/spring-data-jpa-demo 单一实体的动态查询: @Servicepublic class AdvancedUs ...

  4. mybatis深入之动态查询和连接池介绍

    mybatis深入之动态查询和连接池介绍 一.mybatis条件查询 在mybatis前述案例中,我们的查询条件都是确定的.但在实际使用的时候,我们的查询条件有可能是动态变化的.例如,查询参数为一个u ...

  5. 2017.2.21 activiti实战--第十三章--流量数据查询与跟踪(一)查询接口介绍及运行时数据查询

    学习资料:<Activiti实战> 第十三章 流量数据查询与跟踪 本章讲解运行时与历史数据的查询方法.主要包含三种:标准查询,Native查询,CustomSql查询. 13.1 Quer ...

  6. Spring data jpa 复杂动态查询方式总结

    一.Spring data jpa 简介 首先我并不推荐使用jpa作为ORM框架,毕竟对于负责查询的时候还是不太灵活,还是建议使用mybatis,自己写sql比较好.但是如果公司用这个就没办法了,可以 ...

  7. Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询

    原文:Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询 如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时候, ...

  8. EGL接口介绍-----Android OpenGL ES底层开发

    引自:http://www.cnitblog.com/zouzheng/archive/2011/05/30/74326.html EGL 是 OpenGL ES 和底层 Native 平台视窗系统之 ...

  9. (转)QueryBuilder : 打造优雅的Linq To SQL动态查询

    原文地址:http://www.cnblogs.com/coolcode/archive/2009/09/28/IQueryBuilder.html 首先我们来看看日常比较典型的一种查询Form 这个 ...

随机推荐

  1. 用JS实现版面拖拽效果

    类似于这样的一个版面,点击标题栏,实现拖拽效果. 添加onmousedown事件 通过获取鼠标的坐标(clientX,clientY)来改变面板的位置 注意:面板使用绝对定位方式,是以左上角为参考点, ...

  2. hash表的建立和查找

    (1)冲突处理方法为:顺次循环后移到下一个位置,寻找空位插入.(2)BKDE 字符串哈希unsigned int hash_BKDE(char *str){/* 初始种子seed 可取31 131 1 ...

  3. nim

    上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在玩一个游戏,每次寻找边长为x的正方形,其中每个格子必须为黑色,然后将这些格子染白. 如果谁不能操作了,那么那个人就输了. ...

  4. PHP 用Class构造JSON数据

    header('Content-type: appliction/json; charset=shift-JIS'); // error //{ // "result": fals ...

  5. wordpress version

    version info /readme.html /wp-includes/version.php remove copyright 1.wp-login.php //<h1><a ...

  6. UNIX 系统上的文本操作简介

    http://www.oschina.net/question/129540_53561 UNIX 的基本哲学之一就是创建只做一件事并将这一件事做好的程序(或进程).这一哲学要求认真考虑接口以及结合这 ...

  7. jQuery api 学习笔记(1)

      之前自己的jquery知识库一直停留在1.4的版本,而目前jquery的版本已经更新到了1.10.2了,前天看到1.10中css()竟然扩充了那么多用法,这2天就迫不及待的更新一下自己的jquer ...

  8. PHP时间戳和日期相互转换

    在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明. 1.php中时间转换函数 strtotime ...

  9. jquery中的ajax方法详解

    定义和用法ajax() 方法通过 HTTP 请求加载远程数据.该方法是 jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XML ...

  10. jQuery 自动完成文本框

    jQuery自动完成插件开源软件 http://www.oschina.net/project/tag/329/jquery-autocomplete jQuery TextExt http://te ...