mybatis的常见面试题及答案_第1页
mybatis的常见面试题及答案_第2页
mybatis的常见面试题及答案_第3页
mybatis的常见面试题及答案_第4页
mybatis的常见面试题及答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

mybatis的常见面试题及答案

一、单项选择题(每题2分,共10题)1.MyBatis核心配置文件的根标签是()A.<mybatis>B.<configuration>C.<settings>D.<mapper>2.MyBatis中获取SqlSession的对象是()A.SqlSessionFactoryB.SqlSessionBuilderC.ConfigurationD.MapperRegistry3.以下哪个是MyBatis中用于动态SQL的标签()A.<sql>B.<select>C.<insert>D.<update>4.MyBatis中参数传递时,{}和${}的区别是()A.无区别B.{}会进行预编译,${}不会C.${}会进行预编译,{}不会D.用法不同但效果一样5.要在MyBatis中配置事务管理器,应在核心配置文件的哪个标签内()A.<environments>B.<mappers>C.<properties>D.<typeAliases>6.MyBatis支持的数据库连接池不包括()A.DBCPB.C3P0C.TomcatD.HikariCP7.以下关于MyBatis映射文件说法错误的是()A.文件名一般与Mapper接口名相同B.可以放在任意目录C.要在核心配置文件中注册D.包含SQL语句8.MyBatis中如何实现一对一关联查询()A.使用<collection>B.使用<association>C.使用<choose>D.使用<if>9.MyBatis中缓存默认是()A.开启的B.关闭的C.部分开启D.不确定10.MyBatis生成的代理对象基于()A.JDK动态代理B.CGLIB动态代理C.两者都有可能D.静态代理二、多项选择题(每题2分,共10题)1.以下属于MyBatis核心组件的有()A.SqlSessionB.MapperC.ConfigurationD.DataSource2.以下哪些是MyBatis支持的SQL语句标签()A.<select>B.<insert>C.<update>D.<delete>3.MyBatis中动态SQL常用的标签有()A.<if>B.<choose>C.<when>D.<trim>4.关于MyBatis的缓存,说法正确的有()A.一级缓存是SqlSession级别的B.二级缓存是SqlSessionFactory级别的C.可以自定义缓存D.缓存可以提高查询性能5.MyBatis支持的参数传递方式有()A.单个参数B.多个参数(用Map封装)C.多个参数(使用@Param注解)D.实体类参数6.以下哪些是MyBatis核心配置文件中的标签()A.<environments>B.<mappers>C.<typeAliases>D.<plugins>7.在MyBatis中实现多对一关联查询可以使用()A.<association>B.<collection>C.<select>D.<resultMap>8.MyBatis可以整合的持久层框架有()A.SpringB.SpringBootC.StrutsD.Hibernate9.以下关于MyBatis映射文件命名空间说法正确的有()A.一般与Mapper接口全限定名一致B.用于区分不同的SQL语句C.可以随意命名D.是必须的10.MyBatis中可以使用的日志框架有()A.Log4jB.SLF4JC.LogbackD.JDK自带日志三、判断题(每题2分,共10题)1.MyBatis是一个全自动的ORM框架。()2.MyBatis核心配置文件中<mappers>标签只能配置一个映射文件。()3.在MyBatis中,{}方式传参比${}更安全。()4.MyBatis二级缓存默认是开启的。()5.可以在MyBatis映射文件中直接编写SQL语句。()6.MyBatis不支持存储过程调用。()7.MyBatis中<resultMap>标签用于自定义结果集映射。()8.当使用MyBatis时,Mapper接口必须要有实现类。()9.MyBatis可以和多种数据库连接池整合。()10.MyBatis动态SQL标签只能用于<select>语句中。()四、简答题(每题5分,共4题)1.简述MyBatis的工作原理。答:MyBatis读取核心配置文件和映射文件,创建Configuration对象。通过SqlSessionFactory创建SqlSession。用户调用Mapper接口方法,MyBatis根据方法名和命名空间找到SQL语句,处理参数,执行SQL,返回结果。2.说明MyBatis中{}和${}的区别。答:{}会进行预编译,将参数值作为字符串安全地传入SQL语句,防止SQL注入。${}不会预编译,直接将参数值拼接到SQL中,用于一些特殊场景,如表名、字段名替换,但有安全风险。3.简述MyBatis一级缓存和二级缓存。答:一级缓存是SqlSession级别的,在同一个SqlSession内相同查询不会再次查询数据库,直接从缓存取数据。二级缓存是SqlSessionFactory级别的,多个SqlSession可共享,需要手动配置和开启相关支持。4.如何在MyBatis中实现动态SQL?答:使用动态SQL标签,如<if>根据条件判断是否拼接SQL片段,<choose><when><otherwise>类似Java的switch语句,<trim>处理SQL语句前后缀,<foreach>用于遍历集合等实现动态SQL拼接。五、讨论题(每题5分,共4题)1.讨论MyBatis与Hibernate的优缺点对比。答:MyBatis优点是SQL编写灵活,性能优化空间大;缺点是开发效率相对低,对SQL依赖高。Hibernate优点是全自动ORM,开发效率高;缺点是生成SQL不够灵活,性能优化较难,对复杂业务场景支持有限。2.谈谈MyBatis在实际项目中的应用场景。答:适用于对SQL性能要求高、SQL复杂多变的场景,如电商系统的复杂查询、数据统计分析模块等。在需要灵活控制数据库操作、与现有数据库架构紧密结合的项目中,MyBatis能发挥优势。3.讨论MyBatis缓存策略对系统性能的影响。答:合理使用缓存策略能大幅提升系统性能。一级缓存减少同SqlSession内重复查询,二级缓存跨SqlSession共享数据,减少数据库压力。但缓存使用不当,如缓存更新不及时,会导致数据不一致问题,影响系统准确性。4.说说MyBatis与Spring整合的好处。答:整合后,借助Spring的IoC容器管理MyBatis的组件,如SqlSessionFactory等,实现依赖注入和组件生命周期管理。利用Spring的事务管理,方便实现MyBatis数据库操作的事务控制,提高开发效率和系统的可维护性。答案一、单项选择题1.B2.A3.A4.B5.A6.C7.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论