iBATIS.NET多表查询方法是什么呢?让我们从实例出发逐步认识:
建两张表Account和Degree,使用Account_ID关联,需要查出两张表的所有纪录
首先:修改实体类,增加以下属性:
- private Degree _degree;
- public Degree Degree
- {
- get
- {
- return _degree;
- }
- set
- {
- _degree = value;
- }
- }
然后:修改配置文件,这也是最重要的地方(PS:iBATIS.NET中的配置文件真的很强)
在resultMaps节加入:
- ﹤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是当前配置文件的namespace:
- ﹤sqlMap namespace="Account" ......
在statements节加入:
- ﹤select id="GetCom2Tables"
- resultMap="com2result"﹥
- select Accounts.*, Degree.*
- from Accounts,Degree
- where Accounts.Account_ID = Degree.Account_ID
- ﹤/select﹥
这样就可以随心所欲的写自己需要的sql,性能也很好,不会出现第三种方法中的1+n条的查询语句了。
那么,iBATIS.NET多表查询方法就向你介绍到这里,希望对你了解iBATIS.NET多表查询方法有所帮助。
【编辑推荐】
- iBATIS Spring Struts2整合实例浅析
- iBATIS.NET应用之下载、编译、运行NPetShop
- iBATIS.NET中两大常用的DAO浅谈
- iBATIS.NET数据库缓存模式浅析
- iBATIS.NET常用的查询方式浅析