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)


相关推荐

  • mybatis 为什么要设置jdbcType

    mybatis 为什么要设置jdbcType以前没注意过这个问题,用ibatis的时候从来没有设置过jdbcType。ibatis也不会出现这个问题。学习了——————————————————————————————————————————————转载自:http://makemyownlife.iteye.com/blog/1610021前天遇到一个问题异常显示如下: 引用Exceptioninthr

    2022年10月20日
  • 2009-12-22 11:29 解决 jQuery 实现父窗口的问题 如window.parent.document.getElementById().innerHTML…

    2009-12-22 11:29 解决 jQuery 实现父窗口的问题 如window.parent.document.getElementById().innerHTML…

  • numpy中的meshgrid函数「建议收藏」

    numpy中的meshgrid函数「建议收藏」numpy官方文档meshgrid函数帮助文档https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html meshgrid(*xi,**kwargs)功能:从一个坐标向量中返回一个坐标矩阵 参数:x1,x2…,xn:数组,一维的数组代表网格的坐标。indexing:{‘xy’,…

  • WiFi测试规范总结

    WiFi测试规范总结当移植好一款wifi模块后,需要到检测机构去检测各项指标,取得相关认证。这时有必要了解下WiFi测试的相关测试内容,以便更好地跟测试机构人员交流。

  • FFmepg_ffmpeg下载

    FFmepg_ffmpeg下载FFMpeg0.6版源码下载:来自:http://sourceforge.net/projects/mplayer-win32/files/FFmpeg/FFmpeg-svn-24623.7zffmpeg-r24623.tar.bz2我收集到的相关开发资料:(均来自网络) FFMpeg中apiexample_c例子分析——解码分析.txtffmpeg初级教程.rarff

  • linux+tar怎样解压zip文件内容,linux tar压缩解压文件[通俗易懂]

    linux+tar怎样解压zip文件内容,linux tar压缩解压文件[通俗易懂]时间:2016-08-30作者:admin阅读:次-c:建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。下面的参数-f是必须的-f:使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。#tar-cf…

发表回复

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

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