国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于JavaEJB平臺(tái)的實(shí)體BEAN通用查詢方法與流程

      文檔序號(hào):12120070閱讀:604來源:國知局

      本發(fā)明涉及Java EJB平臺(tái)技術(shù)領(lǐng)域,特別涉及一種基于EJB平臺(tái)的實(shí)體BEAN通用查詢方法。



      背景技術(shù):

      當(dāng)在Java EJB平臺(tái)下使用EntityManager類進(jìn)行多條件復(fù)雜查詢時(shí),容易導(dǎo)致代碼寫錯(cuò)。為此,需要一種方法以有效解決該問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明解決的技術(shù)問題在于提供一種基于EJB平臺(tái)的實(shí)體BEAN通用查詢方法;解決數(shù)據(jù)多條件復(fù)雜查詢時(shí)程序員寫HQL語句容易出錯(cuò)的問題。

      本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:

      包含以下幾個(gè)步驟:

      步驟一、創(chuàng)建實(shí)體對(duì)象查詢結(jié)果數(shù)據(jù)集類DataSet,將查詢出來的數(shù)據(jù)進(jìn)行封裝;

      步驟二、創(chuàng)建查詢條件類QueryCondition,主要封裝字段名稱、參數(shù)類型、操作符、參數(shù)值及子查義條件;

      步驟三、創(chuàng)建查詢條件設(shè)定類QueryConditionSetting,定義等于、大于、大于等于三個(gè)常量,及QueryCondition集合;同時(shí),提供AND查詢條件方法addAndQueryCondition,OR查詢條件方法addORQueryCondition,獲取查詢條件方法getQueryConditions;

      步驟四、增加排序類OrderColumn,包括field字段與排序方向direction字段;

      步驟五、創(chuàng)建排序設(shè)置類OrderBySetting,包括相關(guān)的常量ASC與DESC及變量List<OrderColumn>orderColumns;

      步驟六、創(chuàng)建查詢工具類QueryTools,提供方法createQuery,封裝相關(guān)的sql語句,最后返回Query值;

      步驟七、在客戶端調(diào)用對(duì)應(yīng)的Service類里面的findList方法得到DataSet值,然后通過dataSet.getList()方法返回所要的list集合數(shù)據(jù)。

      將HQL語句中常用的WHERE、AND、OR、ORDER BY、LEFT JOIN關(guān)鍵字所涉及到的語句進(jìn)行封裝,在封裝的基礎(chǔ)上使用EJB的EntityManager類進(jìn)行查詢。

      所述的步驟一封裝得數(shù)據(jù)包括總行數(shù)totalRows、每頁行數(shù)rowsPerPage、總頁數(shù)totalPages、當(dāng)前頁數(shù)pageIndex、及實(shí)體對(duì)象列表List<T>datas。

      所述的步驟六創(chuàng)建查詢工具類QueryTools,同時(shí)提供另外方法getEntityListByStartPosition與getDataSetByStartPosition,getEntityListByStartPosition內(nèi)部使用return query.getResultList(),得到數(shù)據(jù)的list集合;getDataSetByStartPosition在getEntityListByStartPosition方法基礎(chǔ)上,使用DataSet類進(jìn)行封裝。

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

      本發(fā)明的有益效果:當(dāng)我們使用EJB的EntityManager類進(jìn)行多條件復(fù)雜查詢時(shí),將其所用到HQL語句中常用的關(guān)鍵字如:WHERE、AND、OR、ORDER BY、LEFT JOIN等所相關(guān)的語句進(jìn)行封裝,從而達(dá)到簡化查詢、避免程序員寫HQL語句容易出錯(cuò)的目的。

      附圖說明

      下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:

      圖1為本發(fā)明的方法流程圖。

      具體實(shí)施方式

      如圖1所示,本發(fā)明采用如下步驟

      步驟一、創(chuàng)建實(shí)體對(duì)象查詢結(jié)果數(shù)據(jù)集類DataSet,用于把查詢出來的數(shù)據(jù)進(jìn)行封裝;如:

      步驟二、創(chuàng)建查詢條件類QueryCondition,主要封裝字段名稱、參數(shù)類型、操作符、參數(shù)值及子查義條件;如:

      步驟三、創(chuàng)建查詢條件設(shè)定類QueryConditionSetting,定義了一些常量,如:等于、大于、大于等于等,及QueryCondition集合,并提供了添加and查詢條件方法addAndQueryCondition,or查詢條件方法addORQueryCondition,獲取查詢條件方法getQueryConditions等;如:

      步驟四、增加排序類OrderColumn,有兩個(gè)字段:field字段與排序方向direction字段;如:

      步驟五、創(chuàng)建排序設(shè)置類OrderBySetting,里面有相關(guān)的常量ASC與DESC及變量List<OrderColumn>orderColumns;如:

      步驟六、創(chuàng)建查詢工具類QueryTools,里面提供了方法createQuery,封裝相關(guān)的sql語句,最后返回Query值,同時(shí)提供另外兩個(gè)重要的方法getEntityListByStartPosition與getDataSetByStartPosition,getEntityListByStartPosition內(nèi)部使用了return query.getResultList(),得到數(shù)據(jù)的list集合,而getDataSetByStartPosition則在getEntityListByStartPosition方法基礎(chǔ)上,使用DataSet類進(jìn)行了封裝,并最后返回DataSet值;如:

      步驟七、使用方法:在客戶端調(diào)用對(duì)應(yīng)的Service類里面的findList方法,此方法封裝了QueryTools里的getDataSetByStartPosition方法,這樣就可以得到DataSet值,然后通過dataSet.getList()方法返回所要的list集合數(shù)據(jù)。如:

      假如有一個(gè)請(qǐng)假類ApplyLeave:要從數(shù)據(jù)庫里查詢其List集合數(shù)據(jù)datas,創(chuàng)建如下方法:

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1