一種基于ibatis的快速檢索方法
【技術領域】
[0001 ]本發(fā)明涉及JAVA技術開發(fā)領域,具體涉及一種基于IBATIS的快速檢索方法。
【背景技術】
[0002]目前,在JAVA的研發(fā)過程中,IBATIS是持久層的常用框架。IBATIS提供了較為完整的封裝方法,而且基于XML的自動的SQL語句,可以方便滿足各種業(yè)務需求和跨平臺需求。但在使用IBATIS處理一對多的業(yè)務查詢時,通常會出現(xiàn)N+1問題。即如果查詢一個教師,并查詢該教師所帶的學生時,IBATIS首先會通過一條SQL語句查詢符合條件的教師,再循環(huán)教師列表,分別查詢該教師所帶的學生。如果有8個教師,則需要查詢9次。這樣將大大降低平臺的性能,甚至無法滿足平臺高并發(fā)的需求。
【發(fā)明內容】
[0003]本發(fā)明解決的技術問題在于提供一種基于IBATIS的快速檢索方法,以解決N+1問題。
[0004]本發(fā)明解決上述技術問題的技術方案是:
[0005]首先建立與表相對應的對象,并通過聯(lián)合查詢的方式查詢相應的數(shù)據;而結果集通過ResultMap的方式返回;ResultMap完成返回值與對象的對應關系,并通過groupBy屬性實現(xiàn)對結果的分類封裝;實現(xiàn)通過一條查詢語句,對一對多業(yè)務的查詢與封裝。
[0006]所述的方法包括如下步驟:
[0007]第I步、建立對象A,并包含主要的屬性,其中包括關鍵的id屬性;
[0008]第2步、建立對象B,包含其所有屬性;其中在B中,建立A的List集合對象;
[0009]第3步、確立與B對應的表Tb,并確定屬性id為主鍵;
[0010]第4步、確立與A對應的表Ta,在表中建立與Tb的id相關聯(lián)的屬性tbid屬性;
[0011]第5步、在IBATIS屬性文件中,建立ResultMap類型的返回值result,其中通過property確定返回值與對象A、B的對應關系;
[0012]第6步、在result返回值,通過groupBy屬性確定數(shù)據的分類統(tǒng)計方法,其中groupBy = id;
[00^3] 第7步、關聯(lián)查詢表Ta與Tb,并通過Tb.1d = Ta.tb—id關聯(lián)查詢,并使用result返回結果。
[0014]本發(fā)明的有益效果是:通過這種查詢與封裝方法,可以通過一條SQL語句實現(xiàn)數(shù)據的查詢與封裝,這樣將大大減少系統(tǒng)的1操作,提高平臺的執(zhí)行效率;而且這種方式,配置非常簡潔,通過XML即可完成相應的對應關系,減少代碼編譯工作,減少相應的風險。
【附圖說明】
[0015]下面結合附圖對本發(fā)明進一步說明:
[0016]圖1為本發(fā)明的流程圖。
【具體實施方式】
[0017]下面具體以教育云共享平臺為例,詳細講解該發(fā)明的詳細過程。
[0018]教育云共享存在教師、科組等信息,其中每一個教育都屬于某一個科組,以下通過查詢所有科組和科組下的教育。
[0019]如附圖1所示;包括如下步驟:
[0020]第I步、建立對象Teacher,其中包括id、name屬性;
[0021 ] 第2步、建立對象Subject,其中包括id、name和集合List屬性;
[0022]第3步、確立表t_sub ject,其中包括id和name字段;
[0023]第4步、建立,其中包括id、name、subject_id屬性;
[0024]第5步、在IBATIS屬性文件中,建立ResultMap類型的返回值result,確之下groupBy = i d;并確定數(shù)據加返回值與對象的關聯(lián)關系
[0025]第6步、通過集合查Wt_subject和t_teacher表,并把返回值返回為result。
【主權項】
1.一種基于IBATIS的快速檢索方法,其特征在于:首先建立與表相對應的對象,并通過聯(lián)合查詢的方式查詢相應的數(shù)據;而結果集通過ResultMap的方式返回;ResultMap完成返回值與對象的對應關系,并通過groupBy屬性實現(xiàn)對結果的分類封裝;實現(xiàn)通過一條查詢語句,對一對多業(yè)務的查詢與封裝。2.根據權利要求1所述的基于IBATIS快速檢索方法,其特征在于:所述的方法包括如下步驟: 第I步、建立對象A,并包含主要的屬性,其中包括關鍵的id屬性; 第2步、建立對象B,包含其所有屬性;其中在B中,建立A的Li st集合對象; 第3步、確立與B對應的表Tb,并確定屬性id為主鍵; 第4步、確立與A對應的表Ta,在表中建立與Tb的id相關聯(lián)的屬性tb_id屬性; 第5步、在IBATIS屬性文件中,建立ResultMap類型的返回值result,其中通過property確定返回值與對象A、B的對應關系; 第6步、在result返回值,通過groupBy屬性確定數(shù)據的分類統(tǒng)計方法,其中groupBy =id; 第7步、關聯(lián)查詢表Ta與Tb,并通過Tb.1d = Ta.tb_id關聯(lián)查詢,并使用result返回結果O
【專利摘要】本發(fā)明涉及JAVA技術開發(fā)領域,具體涉及一種基于IBATIS的快速檢索方法。本發(fā)明首先建立與表相對應的對象,并通過聯(lián)合查詢的方式查詢相應的數(shù)據;而結果集通過ResultMap的方式返回;ResultMap完成返回值與對象的對應關系,并通過groupBy屬性實現(xiàn)對結果的分類封裝;實現(xiàn)通過一條查詢語句,對一對多業(yè)務的查詢與封裝。本發(fā)明通過優(yōu)化ibatis的查詢結構與返回值結構,解決了查詢效率低的問題;可以用于基于IBATIS的快速檢索。
【IPC分類】G06F17/30
【公開號】CN105550261
【申請?zhí)枴緾N201510903659
【發(fā)明人】關班記, 季統(tǒng)凱
【申請人】國云科技股份有限公司
【公開日】2016年5月4日
【申請日】2015年12月9日