mybatis 面试题

mybatis 面试题1.Mybatis比IBatis比较大的几个改进是什么a.有接口绑定,包括注解绑定sql和xml绑定Sql,b.动态sql由原来的节点配置变成OGNL表达式,c.在一对一,一对多的时候引进了association,在一对多的时候引入了collection节点,不过都是在resultMap里面配置2.什么是MyBatis

大家好,又见面了,我是你们的朋友全栈君。

1.Mybatis比IBatis比较大的几个改进是什么
		a.有接口绑定,包括注解绑定sql和xml绑定Sql ,
		b.动态sql由原来的节点配置变成OGNL表达式,
		c. 在一对一,一对多的时候引进了association,在一对多的时候引入了collection
		   节点,不过都是在resultMap里面配置

2.什么是MyBatis的接口绑定,有什么好处
		接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,
		我们直接调用接口方法就可以,这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置.

3.接口绑定有几种实现方式,分别是怎么实现的?
		接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上
		@Select@Update等注解里面包含Sql语句来绑定,另外一种就是通过xml里面写SQL来绑定,
		在这种情况下,要指定xml映射文件里面的namespace必须为接口的全路径名.

4.什么情况下用注解绑定,什么情况下用xml绑定
		当Sql语句比较简单时候,用注解绑定,
		当SQL语句比较复杂时候,用xml绑定,一般用xml绑定的比较多

5.MyBatis实现一对一有几种方式?具体怎么操作的
		有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,
		通过在resultMap里面配置association节点配置一对一的类就可以完成;

		嵌套查询是先查一个表,根据这个表里面
		的结果的外键id,去再另外一个表里面查询数据,也是通过association配置,但另外一个表
		的查询通过select属性配置

6.MyBatis实现一对多有几种方式,怎么操作的
		有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,通过在resultMap里面配
		置collection节点配置一对多的类就可以完成;
		
		嵌套查询是先查一个表,根据这个表里面的
		结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的
		查询通过select节点配置

7.MyBatis里面的动态Sql是怎么设定的?用什么语法?
		MyBatis里面的动态Sql一般是通过if节点来实现,通过OGNL语法来实现,但是如果要写的完
		整,必须配合where,trim节点,where节点是判断包含节点有内容就插入where,否则不插
		入,trim节点是用来判断如果动态语句是以and 或or开始,那么会自动把这个and或者or取
		掉 

8.IBatis和MyBatis在核心处理类分别叫什么
		IBatis里面的核心处理类交SqlMapClient,
		MyBatis里面的核心处理类叫做SqlSession 

9.IBatis和MyBatis在细节上的不同有哪些
		在sql里面变量命名有原来的#变量# 变成了#{变量}  
		原来的$变量$变成了${变量},
		原来在sql节点里面的class都换名字交type 
		原来的queryForObject queryForList 变成了selectOne selectList  
		原来的别名设置在映射文件里面放在了核心配置文件里

10.讲下MyBatis的缓存
		MyBatis的缓存分为一级缓存和二级缓存,
		一级缓存放在session里面,默认就有,二级缓存放在它的命名空间里,默认是关闭的,
		使用二级缓存属性类需要实现Serializable序列化接
		口(可用来保存对象的状态),可在它的映射文件中配置<cache/>

11.MyBatis(IBatis)的好处是什么
		ibatis把sql语句从Java源程序中独立出来,
		放在单独的XML文件中编写,给程序的维护带来了很大便利。
		ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,
		大大简化了Java数据库编程的重复工作。
		
		因为Ibatis需要程序员自己去编写sql语句,
		程序员可以结合数据库自身的特点灵活控制sql语句,
		因此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。.


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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136707.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nginx主从热备(nginx热备方案)

    转载自:http://www.fairysoftware.com/nginx_shuang_ji_re_bei.html(未亲测) 用Nginx实现双机热备,实现高可用,解决Nginx服务器的单点故障问题。架构原理1、双机均正常工作。用户通过域名访问到DNS域名解析时,通过轮询的方式计算虚拟IP。获取对应的nginx服务器。进行请求转发操作2、当其中的一台机器宕机之后,keepali…

  • AJAX

    相关准备说起json,我们大家都了解,就是python中的json模块,那么json模块具体是什么呢?那我们现在详细的来说明一下JSION是什么1、JSON(JavascriptObiect

  • 如何在win10上安装ubuntu虚拟机-图文详细教程「建议收藏」

    前言(和我一样的小白快来看看~)本文将在win10上安装ubuntu虚拟机的步骤一步步记录了下来~希望对大家有帮助方法大概是先装一个虚拟化软件(virtualbox),然后在这个软件上新增一台虚拟电脑机,这样我们就等于有了一台没有装系统的电脑。然后再将我们已经下载好的iso结尾的镜像文件(ubuntu)作为启动盘,给这个虚拟电脑装上系统,就完事了~安装包和镜像文件准备virtu…

  • Mybatis常见面试题总结

    Mybatis常见面试题总结

  • iOS app测试_测试插件app

    iOS app测试_测试插件app前言1、准备开发者账号自从Xcode7出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有app具有“推送”等功能的时候,要真机测试就必须要开发者账号和设置证书。苹果只是让你体验一下它的基本功能,要深入还是要花钱的。待测试的项目2、真机测试步骤1)创建AppID2)创建证书请求文件(CSR文件)3)根据CSR创建开发者证书(C…

  • ios越狱教程14.3_ios14.4.2越狱工具

    ios越狱教程14.3_ios14.4.2越狱工具4.2.1完全越狱图文教程 . 如何用Cydia安装程序   Cydia“源安装”方式安装程序   Cydia“搜索安装”方式安装程序   Cydia“分类安装”方式安装程序   如何卸载用Cydia安装的程序   如何更新用Cydia安装的程序

发表回复

您的电子邮箱地址不会被公开。

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