IBatis.Net学习笔记五--常用的查询方式 中我提到了一些IBatis.Net中的查询,特别是配置文件的写法。

后来通过大家的讨论,特别是Anders Cui 的提醒,又发现了其他的多表查询的方式。
在上一篇文章中我提到了三种方式,都是各有利弊:
第一种方式当数据关联很多的情况下,实体类会很复杂;
第二种方式比较灵活,但是不太符合OO的思想(不过,可以适当使用);
第三种方式最主要的问题就是性能不太理想,配置比较麻烦。

下面是第四种多表查询的方式,相对第二种多了一点配置,但是其他方面都很好
(当然可能还有其他更好地解决方法,希望能多提宝贵意见-_-)
例子还是一样:两张表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条的查询语句了。

http://www.cnblogs.com/firstyi/archive/2007/08/22/864942.html

分类: IBatis.net
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4981661.html,如需转载请自行联系原作者

IBatis.Net学习笔记六--再谈查询相关推荐

  1. IBatis.Net学习笔记(四)--再谈查询

    在上一篇文章中我提到了三种方式,都是各有利弊: 第一种方式当数据关联很多的情况下,实体类会很复杂: 第二种方式比较灵活,但是不太符合OO的思想(不过,可以适当使用): 第三种方式最主要的问题就是性能不 ...

  2. IBatis.Net学习笔记五--常用的查询方式

    在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率. 在IBatis.Net中提供了方便的数据库查询方式.在Dao代码部分主要有两种方式: 1.查询结果为一个 ...

  3. IBatis.Net学习笔记系列文章

    IBatis.Net是一个比较易用的ORM框架,使用起来较为方便.灵活. 在此记录我学习的过程,作为自己的一个总结. 1.IBatis.Net学习笔记一:开篇 2.IBatis.Net学习笔记二:下载 ...

  4. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)

    三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...

  5. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  6. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  7. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  8. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  9. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

最新文章

  1. python的6种基本数据类型--集合
  2. HTML第八章ppt,html教程第八章(JavaSript核心语言对象).ppt
  3. 统计学、数据分析、机器学习常用数据特征汇总
  4. BZOJ 3434 时空穿梭
  5. Linux 安装 lanmp
  6. dedeCMS会员注册功能,如何开启或关闭?
  7. GNU make manual 翻译(八十二)
  8. Bailian2689 大小写字母互换【文本】(POJ NOI0107-14)
  9. mysql查询数据上一条_MySQL查询当前数据上一条和下一条的记录
  10. JS判断字符串变量是否含有某个字串的实现方法
  11. 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
  12. shiro 实现退出登录功能
  13. Ubuntu修改DNS
  14. 创建加密访问网站,端口443
  15. 密码学_最近在论证一个问题,到底是先有鸡还是先有蛋
  16. Python玫瑰花绘制
  17. 初中计算机实践研究计划,项目式教学法在初中信息技术课堂教学中的研究与实践...
  18. 【ArcGIS教程】(1)带有经纬度的EXCEL数据如何转换为shp矢量数据?
  19. ARM系统下使用Vdbench测试存储性能
  20. opencv(十):vs2019+opencv4.1+ C++配置

热门文章

  1. 学习java得一些笔记(5)
  2. java 静态类 安全_Java静态static工具类线程安全问题研究
  3. java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
  4. 别吵吵内卷了,看看人家虚拟人:连续直播70天都没工资
  5. 可以装在手机里的3D姿态估计,模型尺寸仅同类1/7,平均关节位置误差却只有5厘米 | CPVR 2021...
  6. 「GNN,简直太烂了」,一位Reddit网友的深度分析火了
  7. 爱奇艺谢丹铭:用AI让创作者提升效率,让消费者简单快乐丨MEET2021
  8. 一个小度科技就估值200亿,百度现在被低估了吗?
  9. 「表面光鲜,实则搬砖」,机器学习社区自嘲不为人知的AI工程师真相
  10. 北大电池新研究登上Nature:3万次循环测试,性能衰减不到30%,大幅提高锂空电池性能...