一种基于JavaEJB平台的实体BEAN通用查询方法与流程

文档序号:12120070阅读:558来源:国知局

本发明涉及Java EJB平台技术领域,特别涉及一种基于EJB平台的实体BEAN通用查询方法。



背景技术:

当在Java EJB平台下使用EntityManager类进行多条件复杂查询时,容易导致代码写错。为此,需要一种方法以有效解决该问题。



技术实现要素:

本发明解决的技术问题在于提供一种基于EJB平台的实体BEAN通用查询方法;解决数据多条件复杂查询时程序员写HQL语句容易出错的问题。

本发明解决上述技术问题的技术方案是:

包含以下几个步骤:

步骤一、创建实体对象查询结果数据集类DataSet,将查询出来的数据进行封装;

步骤二、创建查询条件类QueryCondition,主要封装字段名称、参数类型、操作符、参数值及子查义条件;

步骤三、创建查询条件设定类QueryConditionSetting,定义等于、大于、大于等于三个常量,及QueryCondition集合;同时,提供AND查询条件方法addAndQueryCondition,OR查询条件方法addORQueryCondition,获取查询条件方法getQueryConditions;

步骤四、增加排序类OrderColumn,包括field字段与排序方向direction字段;

步骤五、创建排序设置类OrderBySetting,包括相关的常量ASC与DESC及变量List<OrderColumn>orderColumns;

步骤六、创建查询工具类QueryTools,提供方法createQuery,封装相关的sql语句,最后返回Query值;

步骤七、在客户端调用对应的Service类里面的findList方法得到DataSet值,然后通过dataSet.getList()方法返回所要的list集合数据。

将HQL语句中常用的WHERE、AND、OR、ORDER BY、LEFT JOIN关键字所涉及到的语句进行封装,在封装的基础上使用EJB的EntityManager类进行查询。

所述的步骤一封装得数据包括总行数totalRows、每页行数rowsPerPage、总页数totalPages、当前页数pageIndex、及实体对象列表List<T>datas。

所述的步骤六创建查询工具类QueryTools,同时提供另外方法getEntityListByStartPosition与getDataSetByStartPosition,getEntityListByStartPosition内部使用return query.getResultList(),得到数据的list集合;getDataSetByStartPosition在getEntityListByStartPosition方法基础上,使用DataSet类进行封装。

所述的findList方法封装QueryTools里的getDataSetByStartPosition方法。

本发明的有益效果:当我们使用EJB的EntityManager类进行多条件复杂查询时,将其所用到HQL语句中常用的关键字如:WHERE、AND、OR、ORDER BY、LEFT JOIN等所相关的语句进行封装,从而达到简化查询、避免程序员写HQL语句容易出错的目的。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的方法流程图。

具体实施方式

如图1所示,本发明采用如下步骤

步骤一、创建实体对象查询结果数据集类DataSet,用于把查询出来的数据进行封装;如:

步骤二、创建查询条件类QueryCondition,主要封装字段名称、参数类型、操作符、参数值及子查义条件;如:

步骤三、创建查询条件设定类QueryConditionSetting,定义了一些常量,如:等于、大于、大于等于等,及QueryCondition集合,并提供了添加and查询条件方法addAndQueryCondition,or查询条件方法addORQueryCondition,获取查询条件方法getQueryConditions等;如:

步骤四、增加排序类OrderColumn,有两个字段:field字段与排序方向direction字段;如:

步骤五、创建排序设置类OrderBySetting,里面有相关的常量ASC与DESC及变量List<OrderColumn>orderColumns;如:

步骤六、创建查询工具类QueryTools,里面提供了方法createQuery,封装相关的sql语句,最后返回Query值,同时提供另外两个重要的方法getEntityListByStartPosition与getDataSetByStartPosition,getEntityListByStartPosition内部使用了return query.getResultList(),得到数据的list集合,而getDataSetByStartPosition则在getEntityListByStartPosition方法基础上,使用DataSet类进行了封装,并最后返回DataSet值;如:

步骤七、使用方法:在客户端调用对应的Service类里面的findList方法,此方法封装了QueryTools里的getDataSetByStartPosition方法,这样就可以得到DataSet值,然后通过dataSet.getList()方法返回所要的list集合数据。如:

假如有一个请假类ApplyLeave:要从数据库里查询其List集合数据datas,创建如下方法:

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1