首页 > 图灵资讯 > 技术篇>正文

最新常考Java mybatis面试题及答案

2023-04-12 09:15:15

  MyBatis可以自定义SQL、高级映射的存储过程和持久层框架。MyBatis 除了大部分JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解配置和映射基本数据类型Map 接口和POJO 记录到数据库。

  今日为大家整理15道最新常考Java mybatis面试题,答案也放在一起,赶紧往下看。

  1、Mybatis是什么?

  答:(1)Mybatis是一个半ORM(对象关系映射)框架,内部包装JDBC。开发时只需要关注SQL语句本身,不需要花精力处理加载驱动、创建连接、创建statement等复杂过程。程序员可以直接编写原始生态SQL,严格控制SQL执行性能,灵活性高。

  (2)MyBatis 可以使用 XML 或注释配置和映射原始信息,将POJO映射成数据库中的记录,以避免几乎所有的记录JDBC代码、手动设置参数和获取结果集。

  (3)通过xml 将执行各种文件或注释的方式 statement 通过java对象进行配置 statement中sql的动态参数映射生成最终执行的sql语句,最后由mybatis框架执行sql,将结果映射成java对象并返回。(从执行sql到返回result的过程)。

  2.Mybaits的优点:

  答:(1)基于SQL语句编程,非常灵活,不会影响应用程序或数据库的现有设计。SQL写在XML中,消除SQL与程序代码的耦合,便于统一管理;提供XML标签,支持动态SQL语句的编写和重用;

  (2)与JDBC相比,代码量减少了50%以上,JDBC消除了大量冗余代码,无需手动开关连接;

  (3)与各种数据库兼容性很好(因为MyBatis使用JDBC连接数据库,只要MyBatis支持JDBC支持的数据库);

  (4)能很好地与Spring集成;

  (5)提供映射标签,支持对象与数据库的ORM字段映射;提供对象关系映射标签,支持对象关系组件的维护。

  3.MyBatis框架的缺点:

  答:(1)SQL语句的编写工作量很大,尤其是字段多、关联表多的时候,对开发人员的SQL语句编写能力有一定的要求。

  (2)SQL语句依赖于数据库,导致数据库移植性差,数据库无法随意更换。

  4.简要介绍Mybatis的插件操作原理,以及如何编写插件。

  答:Mybatis只能为Parameter编写 Handler、Result SetHandler、Statement Handler、对于Executor这四个接口的插件,Mybatis使用JDK动态代理,为需要拦截的接口生成代理对象,以实现接口方法的拦截功能。具体来说,Invocation将进入拦截方法 Handlerinvoke()方法,当然,只会拦截你指定的需要拦截的方法。

  实现Mybatis的Interceptor接口,重写intercept()方法,然后编写插件注释,指定要拦截哪个接口的方法。记住,别忘了在配置文件中配置你编写的插件。

  5.在Mybatis的Xml映射文件中,id可以重复不同的Xml映射文件吗?

  答:不同的xml映如果配置了namee,则射文件 space,然后id可以重复;如果namee没有配置; space,那么id不能重复;毕竟namee; space不是必须的,只是最好的实践。

  6.讲下MyBatis缓存

  答:Mybatis的缓存分为一级缓存和二级缓存。一级缓存放在session中。默认情况下,二级缓存放在其命名空间中。默认情况下不打开。使用二级缓存属性类需要实现serializable序列接口(可用于保存对象状态),可以在其映射文件中配置。

  7.什么是绑定MyBatis界面有什么好处?

  答:界面映射是在MyBatis中任意定义接口,然后绑定接口中的方法和SQL语句。我们可以直接调用接口方法,这样我们就可以比SQLSession提供的原始方法有更灵活的选择和设置。

  8.实现接口绑定的方法有几种,分别是如何实现的?

  答:实现接口绑定有两种方法,一种是通过注释绑定,即在接口方法上添加@Select@Update等注释包含Sql语句绑定,另一种是通过写在Xml中的SQL绑定。在这种情况下,Xml映射文件中的namespace必须是接口的全路径名。

  9.在什么情况下用注解绑定,在什么情况下用xml绑定?

  答:当当SQL语句相对简单时,用注释绑定;当SQL语句复杂时,用xml绑定,通常用xml绑定。

  ,也有针对MyBatis核心源码分析本课程适用于有先进需求的人。

上一篇 Java spring面试题及答案
下一篇 命令行编写和运行java程序的步骤是什么

文章素材均来源于网络,如有侵权,请联系管理员删除。