面试题总结
文章平均质量分 81
buuh1
这个作者很懒,什么都没留下…
展开
-
Mybatis都有哪些Executor执行器?它们之间的区别是什么?
1.mybatis有三种executor执行器,分别为simpleexecutor、reuseexecutor、batchexecutor。simpleexecutor执行器:在每执行一次update或select,就开启一个statement对象,用完后就关闭。reuseexecutor执行器:在执行update或select时以sql作为key去查找statement,有就直接使用,没有就创建,使用完毕后不关闭,放入Map<String,Statement>中,供下次使用。重复使用sta原创 2020-08-04 08:57:05 · 3916 阅读 · 0 评论 -
MyBatis里面的动态Sql是怎么设定的?用什么语法?
mybatis里面的动态sql是通过if节点实现的,通过OGNL语法实现,想要完整实现还需要借助where节点和trim节点,where节点会判断节点是否有内容,没有就不插入。trim节点会判断是否已and或or开头,是就去掉and或or。...原创 2020-08-03 22:53:38 · 896 阅读 · 0 评论 -
Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?
虽然说mybatis解析xml文件时按顺序解析,但是b标签的位置可以在任何地方。原理:mybatis解析a标签时,发现引用了b标签,未解析到b标签,此时会把a标签标记为未解析状态,继续解析下面内容,把剩下解析完之后,再解析标记为未解析的标签,此时已解析到b标签,a标签也就顺利解析完成。...原创 2020-08-03 22:42:10 · 725 阅读 · 0 评论 -
Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
1.通过resultMap标签,将列名与对象属性名之间一一对应。2.通过sql的列别名功能,使列别名与对象属性名之间对应,比如:T—NAME AS name,列别名通常不区分大小写,属性名通常小写,mybatis通常会忽略大小写智能的对应。...原创 2020-08-03 22:28:00 · 1471 阅读 · 0 评论 -
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
1.mybatis不仅支持一对一查询,一对多查询,还支持多对一查询和多对多查询。多对一查询就是一对一查询,只需将select on()改为select list()即可。多对多查询就是一对多查询,只需将select on()修改为select list()。2.关联查询有两种实现方式:1.需要单独发送一个查询关联对象的sql语句,赋值给主对象,返回主对象。2.使用嵌套查询,使用join关联查询,一部分列是a对象的属性值,另一部分列是b对象的属性值,好处是只需发送一次sql语句就可查询。...原创 2020-08-03 22:17:18 · 2318 阅读 · 1 评论 -
mybatis是否支持延迟加载,如果支持他的实现原理是什么?
1.mybatis仅支持关联对象association和关联集合对象collection的延迟加载,association是一对一,collection指的是一对多查询,在mybatis配置文件中可以配置lazyloadingEnable=true/false.2.原理:使用CGLIB为目标对象建立代理对象,当调用目标对象的方法时进入拦截器方法。比如调用a.getb().getName(),拦截器方法invoke()发现a.getb()为null值,会单独发送事先保存好的查询关联b对象的sql语句,把b查原创 2020-08-03 08:49:00 · 2603 阅读 · 0 评论 -
JVM虚拟机面试
1.市场主流JVM 分析1).HotSpot VM (Sun 公司研发,后在 2010 年由 Oracle 公司收购)说明:HotSpot 目前是应用最官方,最主要的一款 JVM 虚拟机2.JVM 体系结构JVM (Java Hotspot Architecture:主要分为三大部分:1)类加载系统 (ClassLoader System) :负责加载类到内存2)运行时数据区 (Runtime Data Area):负责存储数据信息3)执行引擎 (Execution Engine):负责调原创 2020-08-01 18:27:06 · 217 阅读 · 1 评论