秋招面试题系列- - -Java 工程师(六)

简介: ​ 目录MyBatis面试题26、Mapper编写有哪几种方式?第一种:接口实现类继承 SqlSessionDaoSupport:使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件。1、在 sqlMapConfig.xml中配置 mapper.xml的位置resource="mapper.xml文件的地址"/>resource="mapper.xml文件的地址"/>1、定义 mapper接口3、实现类集成 SqlSessionDaoSupportmapper方法中可以 this.getSqlSession

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

image.gif编辑

 

目录

MyBatis面试题

26、Mapper编写有哪几种方式?

第一种:接口实现类继承 SqlSessionDaoSupport:使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件。

第二种:使用org.mybatis.spring.mapper.MapperFactoryBean:

第三种:使用 mapper扫描器:

27、简述 Mybatis的插件运行原理,以及如何编写一个插件。


MyBatis面试题

26、Mapper编写有哪几种方式?

第一种:接口实现类继承 SqlSessionDaoSupport:使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件。

1、在 sqlMapConfig.xml中配置 mapper.xml的位置

resource="mapper.xml文件的地址"/>
resource="mapper.xml文件的地址"/>

image.gif

1、定义 mapper接口

3、实现类集成 SqlSessionDaoSupport

mapper方法中可以 this.getSqlSession()进行数据增删改查。

4、spring配置

id=" "class="mapper接口的实现">
name="sqlSessionFactory"
ref="sqlSessionFactory">

image.gif

第二种:使用org.mybatis.spring.mapper.MapperFactoryBean:

1、在 sqlMapConfig.xml中配置 mapper.xml的位置,如果 mapper.xml和mappre接口的名称相同且在同一个目录,这里可以不用配置

resource="mapper.xml文件的地址"/>
resource="mapper.xml文件的地址"/>

image.gif

2、定义 mapper接口:

1、mapper.xml中的 namespace为 mapper接口的地址

2、mapper接口中的方法名和 mapper.xml中的定义的 statement的 id保持一致

3、Spring中定义

id=""class="org.mybatis.spring.mapper.MapperFactoryBean">
name="mapperInterface"value="mapper接口地址"/>
name="sqlSessionFactory"ref="sqlSessionFactory"/>

image.gif

第三种:使用 mapper扫描器:

1、mapper.xml文件编写:

mapper.xml中的 namespace为 mapper接口的地址;

mapper接口中的方法名和 mapper.xml中的定义的 statement的 id保持一致;如果将 mapper.xml和 mapper接口的名称保持一致则不用在 sqlMapConfig.xml中进行配置。

2、定义 mapper接口:

注意 mapper.xml的文件名和 mapper的接口名称保持一致,且放在同一个目录3、配置 mapper扫描器:

class="org.mybatis.spring.mapper.MapperScannerConfigurer">
name="basePackage"value="mapper接口包地址
">
name="sqlSessionFactoryBeanName"
value="sqlSessionFactory"/>

image.gif

4、使用扫描器后从 spring容器中获取 mapper的实现对象。

27、简述 Mybatis的插件运行原理,以及如何编写一个插件。

答:Mybatis仅可以编写针对 ParameterHandler、ResultSetHandler、StatementHandler、Executor这 4种接口的插件,Mybatis使用 JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这 4种接口对象的方法时,就会进入拦截方法,具体就是 InvocationHandler的 invoke()方法,当然,只会拦截那些你指定需要拦截的方法。

编写插件:实现 Mybatis的 Interceptor接口并复写 intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,记住,别忘了在配置文件中配置你编写的插件。

相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
661 23
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
14天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1072 110
人工智能 数据可视化 数据挖掘
240 0