一种基于Java EJB平台的实体BEAN通用查询方法技术

技术编号:14881487 阅读:31 留言:0更新日期:2017-03-24 04:03
本发明专利技术涉及Java EJB平台技术领域,特别涉及一种基于EJB平台的实体BEAN通用查询方法。当使用EJB的EntityManager类进行多条件复杂查询时,将其所用到HQL语句中常用的关键字如:WHERE、AND、OR、ORDER BY、LEFT JOIN等所相关的语句进行封装,从而达到简化查询、避免程序员写HQL语句容易出错的目的;可以用于Java EJB平台下使用EntityManager类进行多条件复杂查询。

【技术实现步骤摘要】

本专利技术涉及JavaEJB平台
,特别涉及一种基于EJB平台的实体BEAN通用查询方法。
技术介绍
当在JavaEJB平台下使用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、ORDERBY、LEFTJOIN关键字所涉及到的语句进行封装,在封装的基础上使用EJB的EntityManager类进行查询。所述的步骤一封装得数据包括总行数totalRows、每页行数rowsPerPage、总页数totalPages、当前页数pageIndex、及实体对象列表List<T>datas。所述的步骤六创建查询工具类QueryTools,同时提供另外方法getEntityListByStartPosition与getDataSetByStartPosition,getEntityListByStartPosition内部使用returnquery.getResultList(),得到数据的list集合;getDataSetByStartPosition在getEntityListByStartPosition方法基础上,使用DataSet类进行封装。所述的findList方法封装QueryTools里的getDataSetByStartPosition方法。本专利技术的有益效果:当我们使用EJB的EntityManager类进行多条件复杂查询时,将其所用到HQL语句中常用的关键字如:WHERE、AND、OR、ORDERBY、LEFTJOIN等所相关的语句进行封装,从而达到简化查询、避免程序员写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内部使用了returnquery.getResultList(),得到数据的list集合,而getDataSetByStartPosition则在getEntityListByStartPosition方法基础上,使用DataSet类进行了封装,并最后返回DataSet值;如:步骤七、使用方法:在客户端调用对应的Service类里面的findList方法,此方法封装了QueryTools里的getDataSetByStartPosition方法,这样就可以得到DataSet值,然后通过dataSet.getList()方法返回所要的list集合数据。如:假如有一个请假类ApplyLeave:要从数据库里查询其List集合数据datas,创建如下方法:本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201610912506.html" title="一种基于Java EJB平台的实体BEAN通用查询方法原文来自X技术">基于Java EJB平台的实体BEAN通用查询方法</a>

【技术保护点】
一种基于Java EJB平台的实体BEAN通用查询方法,其特征在于:包含以下几个步骤:步骤一、创建实体对象查询结果数据集类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集合数据。...

【技术特征摘要】
1.一种基于JavaEJB平台的实体BEAN通用查询方法,其特征在于:包含以下几个步骤:步骤一、创建实体对象查询结果数据集类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集合数据。2.根据权利要求1所述的一种基于EJB平台的实体BEAN通用查询方法,其特征在于:将HQL语句中常用的WHERE、AND、OR、ORDERBY、LEFTJOIN关键字所涉及到的语句进行封装,在封装的基础上使用EJB的EntityManager类进行查询。3.根据权利要求1所述的一种基于EJB平台的实体BEAN通...

【专利技术属性】
技术研发人员:陈林季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1