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