Mybatis和ibatis的区别

Mybatis和ibatis的区别1、Mybatis实现了接口绑定,使用更加方便。在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。这可以说是Mybatis最重要的改进。注意:虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置,不过

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1、Mybatis实现了接口绑定,使用更加方便。
在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,
而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。
这可以说是Mybatis最重要的改进。

注意:
虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置,
不过强烈建议仍然使用xml配置的方式。毕竟annotation的配置方式功能有限且代码入侵性太强。使用xml配置方式才能体现出Mybatis的优势所在

2、对象关系映射的改进,效率更高
相信很多在使用ibatis2.x的朋友并没有通过ibatis的xml映射文件来实现对象间的关系映射。其实也确实没有必要那么做,因为ibatis2.x采用的是“嵌套查询”的方式将对象之间的关系通过查询语句的直接拼装来实现,其效果和在DAO或Service中自行封装是一样的。
不过这种方式存在“N+1查询问题”。
概括地讲,N+1查询问题可以是这样引起的:
? 你执行了一个单独的SQL语句来获取结果列表(就是+1)。
? 对返回的每条记录,你执行了一个查询语句来为每个加载细节(就是N)。
这个问题会导致成百上千的SQL语句被执行。这通常不是期望的。

而在Mybatis中,除了兼容ibatis2.x中的“嵌套查询”方式外,还提供了直接“嵌套结果”的方式,其效果相当于直接通过一句sql将查询出的dto对象自动封装成所需的对象。
具体实现方法请自行参考Mybatis官方使用手册,不在此累述.

不过实际上这一改进所带来的好处也是很有限的。因为这一方式在使用分页的时候并不起作用,或者说嵌套对象的结果集是不允许进行分页的。这一点在Mybatis框架中已经做出了明确的限制(org.apache.ibatis.executor.resultset.NestedResultSetHandler里34行),而实际项目中需要分页的情况又特别多……
仔细一想,一对多映射确实不能通过配置文件来分页,因为这时查询出的记录数并不等于实际返回对象的size,不过一对一映射为什么也不允许就不太明白了。可能是因为一对一是一对多的特例,而在设计框架的时候并没有考虑去处理或是难于处理这一特例吧。

3、MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。
熟悉struts2的人应该对OGNL表达式不会感到陌生,
MyBatis采用OGNL表达式简化了配置文件的复杂性,使用起来更简洁。

可能较为关心的是
Mybatis实现了接口绑定,使用更加方便。
iBatis / MyBatis 3提供了一个新的功能:的注解。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226864.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS 7安装图形化界面

    CentOS 7安装图形化界面在安装CentSO7时,如果选择“最小化安装“,那么系统只有命令行界面,没有图形化界面。有些小伙伴喜欢使用图形化界面,本文笔者带小伙伴们一起安装图形化界面。1、开启CentOS7以root用户登录(普通用户权限不够),如下图所示:2、配置网络网卡,确保与外网连通(后续要下载相应的包):在命令行界面输入命令cd/etc/sysconfig/network-scripts/进入network-scripts目录,再输入ls命令查看目录下的文件,我们可以看到ifcfg-ens32(有可能有区别)

    2022年5月20日
    49
  • 渝粤锂电一体机800A_渝粤锂电池怎么样

    渝粤锂电一体机800A_渝粤锂电池怎么样选择题题目:英国经济学家罗宾斯的著名论文《轮经济科学的性质和意义》发表于()题目:亚当˙斯密的《国富论》发表于()题目:西方经济学产生的根本原因是()题目:西方主流经济学家主要采用下列哪种方法论来进行经济学研究()题目:微观行为与宏观结果甚至可能是背离的。对此,萨缪尔森在他经典的教科书上曾打过一个精辟的比方。他说,好比在一个电影院看电影,有人被前面的人挡住了视线,如果他站起来的话,他看电影的效果将会改善。因此,站起来就微观而言是合理的。但是,如果大家都站起来的话,则大家看电影的效果都不能

    2025年8月13日
    3
  • Cocos2d-x lua游戏开发之安装Lua到mac系统

    Cocos2d-x lua游戏开发之安装Lua到mac系统

    2022年1月27日
    47
  • pip更新命令以及使用清华镜像快速安装OpenCV-python

    pip更新命令以及使用清华镜像快速安装OpenCV-pythonpip更新命令以及使用清华镜像快速安装OpenCV-python1.pip更新:首先尝试使用pipinstallOpenCV-python进行安装,如果安装出现这种情况:则使用以下命令: python-mpipinstall-U–force-reinstallpip2.使用清华镜像快速安装OpenCV-python如下命令: pipinstallopencv…

    2022年6月7日
    101
  • python df.iloc_python中loc

    python df.iloc_python中locstackoverflow原文:pandasilocvsixvslocexplanation;howaretheydifferent?在pandas0.20.0及以上版本,ix已经被loc和iloc取代了,因此不讨论它。前提,简单介绍一下它俩:–loc利用index的名称,来获取想要的行(或列)。–iloc利用index的具体位置(所以它只能是整数型参数),…

    2022年10月9日
    6
  • 安卓10修改系统ntp服务器,安卓修改ntp服务器地址

    安卓10修改系统ntp服务器,安卓修改ntp服务器地址安卓修改ntp服务器地址内容精选换一换访问IIS搭建的网站不通,报错404。IIS上绑定的域名只填写了主机名,没有指定IP地址。本节操作指导用户修改IIS上绑定的域名,以WindowsServer2008R2操作系统云服务器为例。登录服务器,选择“开始>管理工具>信息服务(IIS)管理器。”在IIS管理器界面,选择自己需要编辑的网站。选择待修改的网站,单击右键选择华为云帮…

    2022年6月11日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号