iBATIS.NET多表查詢方法的歸納總結(jié)
iBATIS.NET多表查詢方法是什么呢?讓我們從實(shí)例出發(fā)逐步認(rèn)識:
建兩張表Account和Degree,使用Account_ID關(guān)聯(lián),需要查出兩張表的所有紀(jì)錄
首先:修改實(shí)體類,增加以下屬性:
- private Degree _degree;
- public Degree Degree
- {
- get
- {
- return _degree;
- }
- set
- {
- _degree = value;
- }
- }
然后:修改配置文件,這也是最重要的地方(PS:iBATIS.NET中的配置文件真的很強(qiáng))
在resultMaps節(jié)加入:
- ﹤resultMap id="com2result" class="Account" ﹥
- ﹤result property="Id" column="Account_ID"/﹥
- ﹤result property="FirstName" column="Account_FirstName"/﹥
- ﹤result property="LastName" column="Account_LastName"/﹥
- ﹤result property="EmailAddress" column="Account_Email" nullValue="no_email@provided.com"/﹥
- ﹤result property="Degree" resultMapping="Account.Degree-result"/﹥
- ﹤/resultMap﹥
- ﹤resultMap id="Degree-result" class="Degree"﹥
- ﹤result property="Id" column="Account_ID"/﹥
- ﹤result property="DegreeName" column="DegreeName"/﹥
- ﹤/resultMap﹥
這里最主要的就是使用了resultMapping屬性,resultMapping="Account.Degree-result",其中Account是當(dāng)前配置文件的namespace:
- ﹤sqlMap namespace="Account" ......
在statements節(jié)加入:
- ﹤select id="GetCom2Tables"
- resultMap="com2result"﹥
- select Accounts.*, Degree.*
- from Accounts,Degree
- where Accounts.Account_ID = Degree.Account_ID
- ﹤/select﹥
這樣就可以隨心所欲的寫自己需要的sql,性能也很好,不會出現(xiàn)第三種方法中的1+n條的查詢語句了。
那么,iBATIS.NET多表查詢方法就向你介紹到這里,希望對你了解iBATIS.NET多表查詢方法有所幫助。
【編輯推薦】
- iBATIS Spring Struts2整合實(shí)例淺析
- iBATIS.NET應(yīng)用之下載、編譯、運(yùn)行NPetShop
- iBATIS.NET中兩大常用的DAO淺談
- iBATIS.NET數(shù)據(jù)庫緩存模式淺析
- iBATIS.NET常用的查詢方式淺析