SSH动态查询封装接口介绍
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动态查询封装接口介绍的更多相关文章
- JPA动态查询封装
一.定义一个查询条件容器 /** * 定义一个查询条件容器 * * @param <T> */ public class Criteria<T> implements Spec ...
- spring data jpa 动态查询(工具类封装)
利用JPA的Specification<T>接口和元模型就实现动态查询了.但是这样每一个需要动态查询的地方都需要写一个这样类似的findByConditions方法,小型项目还好,大型项目 ...
- spring data jpa封装specification实现简单风格的动态查询
github:https://github.com/peterowang/spring-data-jpa-demo 单一实体的动态查询: @Servicepublic class AdvancedUs ...
- mybatis深入之动态查询和连接池介绍
mybatis深入之动态查询和连接池介绍 一.mybatis条件查询 在mybatis前述案例中,我们的查询条件都是确定的.但在实际使用的时候,我们的查询条件有可能是动态变化的.例如,查询参数为一个u ...
- 2017.2.21 activiti实战--第十三章--流量数据查询与跟踪(一)查询接口介绍及运行时数据查询
学习资料:<Activiti实战> 第十三章 流量数据查询与跟踪 本章讲解运行时与历史数据的查询方法.主要包含三种:标准查询,Native查询,CustomSql查询. 13.1 Quer ...
- Spring data jpa 复杂动态查询方式总结
一.Spring data jpa 简介 首先我并不推荐使用jpa作为ORM框架,毕竟对于负责查询的时候还是不太灵活,还是建议使用mybatis,自己写sql比较好.但是如果公司用这个就没办法了,可以 ...
- Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询
原文:Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询 如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时候, ...
- EGL接口介绍-----Android OpenGL ES底层开发
引自:http://www.cnitblog.com/zouzheng/archive/2011/05/30/74326.html EGL 是 OpenGL ES 和底层 Native 平台视窗系统之 ...
- (转)QueryBuilder : 打造优雅的Linq To SQL动态查询
原文地址:http://www.cnblogs.com/coolcode/archive/2009/09/28/IQueryBuilder.html 首先我们来看看日常比较典型的一种查询Form 这个 ...
随机推荐
- C# div布局
本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_20139 ...
- Codeforces 474F - Ant colony
注意到每个区间生存下来的蚂蚁的长度等于区间的gcd 于是可以先预处理出区间的gcd 然后二分查找就好了 预处理gcd我这里用的是倍增法 总的时间复杂度O(NlogN) /* Cf 271F 倍增求区间 ...
- 你知道HTML标签设计的本意吗? 把HTML标签用到该用的地方去
"DIV+CSS"这个词汇不知道害了多少人,也许其提出者本意并没有错,但是跟风者从表现曲解了其意思,认为整个页面就应当是DIV+CSS文件的组合.这样做,对于视觉上并没有什么影响, ...
- S5PV210开发板刷机(SD卡uboot、串口+USB-OTG刷机方法)
一.介绍 九鼎的S5PV210开发板,在出厂前已经默认刷了Android4.0系统.如果需要刷其它的系统或者是由于系统问题无法启动时,就需要对板子刷机. 其实,刷机是对210开发板的一个基础学习,目的 ...
- DotNet 资源
DotNet 资源 目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligen ...
- [转]加盐hash保存密码的正确方式
0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码, ...
- 关于新手与SEO误区的那些事儿
常见的SEO误区,部落觉得对于新手来说,最容易出现问题的就是关健词堆砌了.记得部落自己最开始做网站的时候,基本每一篇文章都会布局很密的关健词.当然,对于新手网站SEO来说,远远不止这一点,或许最重要的 ...
- Ugly Windows
poj3923:http://poj.org/problem?id=3923 题意:给出两个整数n.m表示屏幕的长宽.屏幕上有一些窗口,每个窗口都是矩形的,窗口的边框用同一个大写字母来表示,不同的窗口 ...
- H3C S5500上层接路由,VLAN IP作网站配置实例
# version 5.20, Release 2208 # sysname S5500-1 # clock timezone #Web#8#01 add 08:00:00 # super passw ...
- AT24C512与AT24C512B的区别
前几日公司采购人员说现在AT24C512要停产了,替代型号为AT24C512B,因为公司产品中使用该器件较多,因此专门又研究了一下这两个芯片,发现还是有很多地方不同的. (1)AT24C512输入电压 ...