秋招面试题系列- - -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()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,记住,别忘了在配置文件中配置你编写的插件。

相关文章
|
NoSQL Dubbo Java
这88道阿里高级岗面试题,刷掉了80%以上的Java程序员
2023,可谓是招聘面试最难季。不少大厂,如腾讯、字节的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言。今天不谈其它,就说说我作为面试官面试的那些事儿。
89 0
|
存储 负载均衡 监控
秋招面试题系列- - -Java工程师(七)
秋招面试题系列- - -Java工程师(七)
|
SQL XML Java
秋招面试题系列- - -Java工程师(三)
秋招面试题系列- - -Java工程师(三)
|
SQL XML 存储
秋招面试题系列- - -Java工程师(五)
秋招面试题系列- - -Java工程师(五)
|
缓存 Java 调度
秋招面试题系列- - -Java工程师(九)
秋招面试题系列- - -Java工程师(九)
|
XML SQL Java
秋招面试题系列- - -Java工程师(四)
秋招面试题系列- - -Java工程师(四)
|
SQL XML Java
秋招面试题系列- - -Java 工程师(二)
秋招面试题系列- - -Java 工程师(二)
|
Java 数据库连接 mybatis
秋招面试题系列- - -Java 工程师(六)
秋招面试题系列- - -Java 工程师(六)
|
负载均衡 Java 应用服务中间件
秋招面试题系列- - -Java工程师(十)
秋招面试题系列- - -Java工程师(十)
|
存储 网络协议 Java
秋招面试题系列- - -Java工程师(八)
秋招面试题系列- - -Java工程师(八)