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框架更高的查询效率,能够完成复杂查询。.


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

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

(0)
上一篇 2022年6月3日 上午8:00
下一篇 2022年6月3日 上午8:00


相关推荐

  • 更改nginx端口_nginx 端口映射

    更改nginx端口_nginx 端口映射Postedby撒得一地on2015年8月25日innginx笔记nginx相关文章在web服务器中,不管是Apache还是Nginx,这些服务器默认占用的端口都是80端口。但是,有时候80端口被占用,或者一些其他原因,我们需要这些服务工作在非80端口上,那么如何修改Nginx默认端口,使其占用8089端口(或者其它非80端口),方法步骤如下:1.首先修改nginx根目录下的配置文件n…

    2025年10月7日
    6
  • 3万计算机配置清单,电脑组装知识网预算2万至3万元电脑主机推荐九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单…

    3万计算机配置清单,电脑组装知识网预算2万至3万元电脑主机推荐九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单…本文转自:http://www.dn010.com/peizhi/710.html近日,一位网友联系了小编,说他要配一套高配置的电脑主机,主机预算约为2万至3万元,针对该网友的预算要求,小编提供一套九代酷睿i9-9900K搭RTX2080Ti全能型高配电脑主机配置清单,用户还可根据自己的喜好调整电脑配置。电脑配置清单:注意:由于更新电脑硬件的速度更快,如果产品停产,请使用新产品。另外,硬件价格会随…

    2022年7月16日
    20
  • NiFi ListSFTP精讲

    NiFi ListSFTP精讲序 since 2021 年 5 月 20 日 22 29auth Hadi 前言从去年年末开始接触使用到 NiFi 到现在为止已经将近半年 这里将一下关于 ListSFTP 类相关组件的使用 NiFi 可以当做 Flink 进行使用 但不是很推荐进行复杂计算的使用 对于我的使用场景来说主要是做数据采集和预处理相关的工作 负责数据流程的第一步 同时也做数据的转换操作比如流式转文件 文件转流式等等 那么获取数据是整个数据预处理的第一步 一般我们都是采用 List amp Fetch 的操作进行数据预处理

    2026年3月18日
    2
  • 安装AIC准则使用前进法后退法和逐步回归法进行变量选择的r语言代码

    安装AIC准则使用前进法后退法和逐步回归法进行变量选择的r语言代码setwd(“C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业”) #设定当前的工作目录shuju=read.table(“shuju.txt”,header=T)shuju #读取数据#采用AIC原则自动选择模型-前进法shuju.reg1shuju.regforward2summary(shuju.regforward2)#采用A

    2022年5月23日
    63
  • docker部署jenkins安装使用教程_docker安装python

    docker部署jenkins安装使用教程_docker安装python前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月29日
    9
  • html5跟随鼠标炫酷网站引导页动画特效建议收藏

    html5跟随鼠标炫酷网站引导页动画特效一款非常不错的引导页,文字效果渐变,鼠标跟随出绚丽的条纹。html5炫酷网站引导页,鼠标跟随出特效。体验效果:http://hovertree.com/texi

    2021年12月21日
    77

发表回复

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

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