亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

通過Fitler模型及注解擴展實現(xiàn)ECP平臺數(shù)據(jù)訪問的查詢方法與流程

文檔序號:12824385閱讀:248來源:國知局

本發(fā)明涉及電子信息及數(shù)據(jù)處理技術(shù)領域,具體涉及一種數(shù)據(jù)訪問的查詢方法。



背景技術(shù):

ecp企業(yè)管理平臺是一個管理體系,是企業(yè)現(xiàn)實運營中使用的有形和無形相結(jié)合的管理體系。在這個平臺上能夠充分保證企業(yè)自己的管理思想、管理理念、管理方法、管理工具、企業(yè)流程、規(guī)章制度、激勵機制的實現(xiàn)。這個平臺,最主要的作用就是要充分的發(fā)揮企業(yè)內(nèi)外部資源的利用效率,其核心的任務則是保證企業(yè)目標、任務和結(jié)果的實現(xiàn)。其中,數(shù)據(jù)的查詢ecp系統(tǒng)中重要和關鍵的環(huán)節(jié)。

在傳統(tǒng)的數(shù)據(jù)訪問編碼模式下,編寫查詢語句需要寫一系列的查詢語句,其開發(fā)模式訪問數(shù)據(jù)庫,一般是按以下步驟得到查詢結(jié)果:

步驟1:定義一個查詢sql字符串;

步驟2:定義該sql語句相關參數(shù)值;

步驟3:使用jdbc相關api預編譯sql;

步驟4:設置好sql參數(shù)執(zhí)行查詢;

上述查詢方式,代碼量大,耗時耗力且代碼不夠清晰,和hibernate、jpa、jdo、toplink等數(shù)據(jù)持久化框架的兼容性不高。



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

本發(fā)明旨在提供一種通過fitler模型及注解擴展實現(xiàn)ecp平臺數(shù)據(jù)訪問的查詢方法。本發(fā)明采取如下的技術(shù)方案:

一種通過fitler模型及注解擴展實現(xiàn)ecp平臺數(shù)據(jù)訪問的查詢方法,包括如下步驟:

(1)定義一個查詢對象,并繼承filtermodel;

(2)在查詢對象屬性上面標注filter查詢注解;

(3)將該查詢對象交由數(shù)據(jù)訪問層翻譯成sql或者hql后查詢。

本發(fā)明提供的查詢方法,支持采用注解的方式代替拼湊字符串來構(gòu)造查詢語句,這樣既節(jié)省了編碼人員的代碼量,又可以使代碼看起來更加清晰,讓代碼顯得更規(guī)范(盡量讓代碼中少出現(xiàn)sql語句),并且可以方便集成hibernate、jpa、toplink、jdo等數(shù)據(jù)持久化框架。

附圖說明

圖1為本發(fā)明提供的通過fitler模型及注解擴展實現(xiàn)ecp平臺數(shù)據(jù)訪問的查詢方法的流程圖。

具體實施方式

下面結(jié)合附圖和具體實施方式詳細說明本發(fā)明。

如圖1所示,本實施例提供的ecp平臺數(shù)據(jù)訪問的查詢方法,通過fitler模型以及注解擴展,用注解方式代替原有傳統(tǒng)字符串的拼湊來實現(xiàn)數(shù)據(jù)訪問,包括如下步驟:

步驟1:定義一個查詢對象,它繼承filtermodel;

步驟2:在查詢對象屬性上面標注filter查詢注解;

步驟3:將該查詢對象交由數(shù)據(jù)訪問層翻譯成sql或者hql后查詢。

實現(xiàn)上述查詢方法的示例代碼如下:

1、定義一個查詢對象,它繼承filtermodel:

filtermodel包路徑com.ygsoft.ecp.core.framework.model.filtermodel

publicclassbookfiltermodelextendsfiltermodel

2、在查詢對象屬性上面標注filter查詢注解:

3、將該查詢對象交由數(shù)據(jù)訪問層進行查詢:

/**

*根據(jù)鍵值及分頁信息返回一個列表

*

*@paramcontext

*上下文

*@paramfilter

*過濾條件

*@parampageindex

*頁索引

*@parampagesize

*頁大小

*@return某一頁的列表

*/

@context

@contextdesc

list<vo>findlistbyfilter(finaliecpdatacontextcontext,finalfiltermodelfilter,finalintpageindex,finalintpagesize);

本實施例對上述實現(xiàn)過程進行了測試和驗證,證明其確實是可行的。進行驗證的測試代碼如下:

iecpdatacontextdatacontext=datacontextutil.getcurrentdatacontext();

bookfiltermodelfilter=newbookfiltermodel();

//測試單條件and(bname=”java”)

filter.setbname(”java”);

list<bookvo>datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(10,datalist.size());

//測試二個條件and(bname=”java”andbprice=2)

filter.set(“bprice”,newdouble(2));

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(1,datalist.size());

//測試三個條件and,有一個條件是主鍵(bid=”2”andbname=”java”andbprice=2)

filter.set(“bid”,“2”);

datalist=role.findlistbyfilter(datacontext,filter,1,10);

//測試主鍵條件in,參數(shù)值用數(shù)組(bidin(“1”,”2”,”3”)andbname=”java”)

filter=newbookfiltermodel();

filter.setbname(“java”);

filter.set(“bid”,newstring[]{“1”,”2”,”3”});

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(3,datalist.size());

//測試非主鍵條件in,參數(shù)值用list(bpricein(2,3,4,5,6)andbname=”java”)

filter=newbookfiltermodel();

filter.setbname(“java”);

list<double>price=newarraylist<double>();

price.add(newdouble(2));

price.add(newdouble(3));

price.add(newdouble(4));

price.add(newdouble(5));

price.add(newdouble(6));

filter.set(“bprice”,price);

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(5,datalist.size());

//測試多個條件in(bidin(“1”,”2”,”3”)andbpricein(2,3,4,5,6))

filter.set(“bid”,newstring[]{“1”,”2”,”3”});

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(2,datalist.size());

//測試單條件isnull查詢(bnameisnull)

filter=newbookfiltermodel();

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(10,datalist.size());

//測試多條件isnull查詢(bidin(“21”,”22”)andbnameisnull)

filter.set(“bid”,newstring[]{“21”,”22”});

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(2,datalist.size());

//測試多個isnull條件查詢(bidisnullandbnameisnull)

filter.set(“bid”,null);

datalist=role.findlistbyfilter(datacontext,filter,1,10);

assertequals(0,datalist.size());

以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術(shù)人員應當理解,依然可以對本發(fā)明的具體實施方式進行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應涵蓋在本發(fā)明的揭露范圍之內(nèi)。

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