Mybatis面试题(四)

这篇具有很好参考价值的文章主要介绍了Mybatis面试题(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MyBatis 面试题

Mybatis面试题(四),面试题汇总与解析,mybatis,java

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

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

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

<mappers>

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

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

</mappers>

2、定义 mapper 接口

3、实现类集成 SqlSessionDaoSupportmapper 方法中可以 this.getSqlSession()进行数据增删改查。

4、spring 配置

<bean id=" " class="mapper 接口的实现">

	<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>

</bean>

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

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

<mappers>

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

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

</mappers>

2、定义 mapper 接口:

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

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

3、Spring 中定义

<bean id="" class="org.mybatis.spring.mapper.MapperFactoryBean">

  <property name="mapperInterface" value="mapper 接口地址" />

  <property name="sqlSessionFactory" ref="sqlSessionFactory" />

</bean>

第三种:使用 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 扫描器:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

  <property name="basePackage" value="mapper 接口包地址"></property>

  <property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>

</bean>


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

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

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

编写插件:实现 Mybatis 的 Interceptor 接口并复写 intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,记住,别忘了在配置文件中配置你编写的插件。文章来源地址https://www.toymoban.com/news/detail-814513.html

到了这里,关于Mybatis面试题(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java实习面试经验汇总,Dubbo-负载均衡原理解析,TCP的三次握手、四次挥手

    if (sameWeight i 0 !weight.equals(weights[i - 1])) { sameWeight = false; } } Integer sequenceNum = Sequence.getAndIncrement(); Integer offset = sequenceNum % totalWeight; offset = offset == 0 ? totalWeight : offset; if (!sameWeight) { for (String ip : ServerIps.WEIGHT_LIST.keySet()) { Integer weight = ServerIps.WEIGHT_LIST.get(ip); if (offset = weight) { ret

    2024年04月25日
    浏览(40)
  • Mybatis面试题(四)

    MyBatis 面试题 26、Mapper 编写有哪几种方式? 第一种:接口实现类继承 SqlSessionDaoSupport:使用此种方法需要编写mapper 接口,mapper 接口实现类、mapper.xml 文件。 1、在 sqlMapConfig.xml 中配置 mapper.xml 的位置 2、定义 mapper 接口 3、实现类集成 SqlSessionDaoSupportmapper 方法中可以 this.getS

    2024年01月22日
    浏览(41)
  • 精选MyBatis面试题

    什么是MyBatis? MyBatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。 作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信

    2024年02月10日
    浏览(88)
  • MyBatis 面试题(六)

    1. MyBatis 有几种分页方式? MyBatis 的分页方式主要可以分为两大类:逻辑分页和物理分页。 逻辑分页是一次性把全部数据查询加载进内存,然后再进行分页。这种方式减少了IO次数,适合频繁访问、数据量少的情况,但不适合大数据量,容易造成内存溢出。 物理分页则是利用

    2024年04月26日
    浏览(29)
  • JavaWeb编程面试题——MyBatis

    面试题==知识点,这里所记录的面试题并不针对于面试者,而是将这些面试题作为技能知识点来看待。不以刷题进大厂为目的,而是以学习为目的。这里的知识点会持续更新,目录也会随时进行调整。 关注公众号:编程火箭车 。在【粉丝福利】中点击【面题大全】,其中的

    2024年02月06日
    浏览(48)
  • MyBatis面试题及高级用法

    答案1: MyBatis是一个Java持久层框架,通过将SQL语句映射到对象,简化了数据库访问。它的主要特点包括动态SQL生成、自动参数映射和复杂映射支持。 答案2: MyBatis与大多数对象关系映射(ORM)框架的区别在于,它不需要使用面向对象的查询语言编写数据库查询。相反,MyBatis允

    2024年02月02日
    浏览(38)
  • 70多道MyBatis面试题,让面试官无言以对

    以下是MyBatis面试题目,答案一个个整理出来很麻烦,所以直接答案可以查看这里即可: http://www.yayihouse.com/yayishuwu/book/158 1、 MyBatis的嵌套查询是什么? 2、 MyBatis的resultType和javaType的区别是什么? 3、 MyBatis和Hibernate的相同点和不同点以及各自的优缺点 4、 Mybatis中的多表查询如

    2024年02月16日
    浏览(33)
  • Mybatis原理 - 标签解析

    很多开源框架之所以能够流行起来,是因为它们解决了领域内的一些通用问题。但在实际使用这些开源框架的时候,我们都是要解决通用问题中的一个特例问题,所以这时我们就需要使用一种方式来控制开源框架的行为,这就是开源框架提供各种各样配置的核心原因之一。

    2024年01月21日
    浏览(43)
  • 【源码解析】Mybatis执行原理

    MyBatis 是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 Mybatis中的mapper接口并没有具体实

    2024年02月16日
    浏览(34)
  • Mybatis缓存相关面试题有多卷

    MyBatis 是一个流行的持久层框架,它提供了一个灵活且高效的方式来访问关系型数据库。其中一个重要的特性是缓存机制,它可以帮助提升数据库查询的性能。 MyBatis 的缓存分为一级缓存和二级缓存两种: 一级缓存:默认情况下,MyBatis 开启了一级缓存。一级缓存是指在同一

    2024年01月25日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包