mybatis面试热点

mybatis面试热点什么是Mybatis? Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的…

mybatis面试热点

分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。

Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

 <resultMap>、<parameterMap>、<sql>、<include>、<selectKey> ,加上动态sql的9个标签,其中 <sql> 为sql片段标签,通过 <include> 标签引入sql片段, <selectKey> 为不支持自增的主键生成策略标签。

为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。

Mybatis 中一级缓存与二级缓存的区别?

缓存:合理使用缓存是优化中最常见的方法之一,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能。

  • 一级缓存是SqlSession级别的缓存:
Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存。一级缓存在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能作用在同一个sqlSession中,不同的sqlSession中的缓存是互相不能读取的。
mybatis面试热点
  • 二级缓存是mapper级别的缓存:
MyBatis的二级缓存是mapper级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

mybatis面试热点

 

开启二级缓存:
A.mybatis.xml配置文件中加入:

<span style="font-size:18px;"><settings>    
   <!--开启二级缓存-->    
    <setting name="cacheEnabled" value="true"/>    
</settings> </span>  

代码100分

B.在需要开启二级缓存的mapper.xml中加入caceh标签

代码100分<span style="font-size:18px;"><cache/></span>  

C.让使用二级缓存的POJO类实现Serializable接口

<span style="font-size:18px;">public class User implements Serializable {}</span>  

使用 MyBatis 的 mapper 接口调用时有哪些要求?

A. Mapper 接口方法名和 mapper.xml 中定义的每个 sql 的 id 相同

B. Mapper 接口方法的输入参数类型和 mapper.xml 中定义的每个 sql 的 parameterType 的类型相同

C. Mapper 接口方法的输出参数类型和 mapper.xml 中定义的每个 sql 的 resultType 的类型相同

D. Mapper.xml 文件中的 namespace 即是 mapper 接口的类路径

简述一下Mybatis 的编程步骤

A.创建 SqlSessionFactory

B.通过 SqlSessionFactory 创建 SqlSession

C.通过 sqlsession 执行数据库操作

D.调用 session.commit()提交事务

E.调用 session.close()关闭会话

MyBatis中接口绑定有几种实现方式,是怎么实现的?

A.通过注解绑定,在接口的方法上面加上
@Select@Update等注解里面包含Sql语句来绑定(Sql语句比较简单的时候,推荐注解绑定)

B.通过xml里面写SQL来绑定, 指定xml映射文件里面的namespace必须为接口的全路径名(SQL语句比较复杂的时候,推荐xml绑定)

MyBatis实现一对多有几种方式,怎么操作的?

A.联合查询:几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成.

B.嵌套查询:是先查一个表,根据这个表里面的结果的外键id去另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。

 

 

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

(0)
上一篇 2023-01-28 11:30
下一篇 2023-01-28 12:30

相关推荐

  • Python程序员: 用代码实现你想要的功能

    Python程序员: 用代码实现你想要的功能随着互联网的发展,代码已经渐渐成为了一个人在信息时代中的必备技能之一。而Python作为一种简单易学、功能丰富的编程语言,已经成为了各行各业中广泛使用的工具。Python程序员可以用代码实现各种各样的功能:爬取网页数据、解析数据、制作数据可视化图表等等。Python程序员可以做的事情多种多样,本文将介绍几个常见的方面。

    2024-02-11
    47
  • MySQL查询性能优化七种武器之索引下推「建议收藏」

    MySQL查询性能优化七种武器之索引下推「建议收藏」前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:
    MySQL查询性能优化七种武器之索引潜水
    MySQL查询性能优化七种武器之链路追踪
    今天要讲的是MySQL的另一种查询性能优化方式

    2023-06-01
    97
  • windows7下mysql8.0.18部署安装

    windows7下mysql8.0.18部署安装一、前期准备(windows7+mysql-8.0.18-winx64) 1.下载地址:https://dev.mysql.com/downloads/ 2.选择直接下载不登录账号,下载的压缩包大概两

    2022-12-29
    104
  • Python wx 开发教程

    Python wx 开发教程Python wx 开发教程是介绍如何使用 Python wx 做桌面程序开发的教程。Python wx 是 Python 编程语言的一个库,可以用于创建不同类型的桌面图形用户界面(GUI)应用程序。该教程旨在帮助开发人员学习如何使用 Python wx 开发桌面应用程序。

    2024-05-08
    14
  • db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议[亲测有效]

    db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议[亲测有效]db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议 1、建立表索引 create index 索引名 on 表名(列名,列名); 2、删除表索引 drop index 索引名…

    2023-02-26
    100
  • 【MySQL实战】索引

    【MySQL实战】索引主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚簇索引(clustered index)。 非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级…

    2023-03-18
    91
  • 技术分享 | 如何优雅地在 Windows 上从 MySQL 5.6 升级到 5.7「终于解决」

    技术分享 | 如何优雅地在 Windows 上从 MySQL 5.6 升级到 5.7「终于解决」作者:赵黎明 爱可生 MySQL DBA 团队成员,Oracle 10g OCM,MySQL 5.7 OCP,擅长数据库性能问题诊断、事务与锁问题的分析等,负责处理客户 MySQL 及我司自研 DM…

    2023-03-21
    96
  • 数据库模糊查询算法_mysql优化like查询索引

    数据库模糊查询算法_mysql优化like查询索引摘要:本文讲解了GaussDB(DWS)上模糊查询常用的性能优化方法,通过创建索引,能够提升多种场景下模糊查询语句的执行速度。 本文分享自华为云社区《GaussDB(DWS) 模糊查询性能优化》,作者

    2023-06-15
    104

发表回复

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