首页 > 其他分享 >Mybatis常见面试题

Mybatis常见面试题

时间:2023-12-21 19:07:00浏览次数:37  
标签:语句 面试题 分页 映射 常见 插件 sql Mybatis

  1. ${} 与 #{} 区别

#{} :表示一个占位符号

通过 #{} 可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。

#{} 可以接收简单类型值或pojo属性值。

如果parameterType传输单个简单类型值, #{} 括号中名称随便写。

${} **:**表示拼接ql串

通过 ${} 可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换,会出现sql注入问题。

${} 可以接收简单类型值或pojo属性值。

如果parameterType传输单个简单类型值, ${} 括号中只能是value。

  1. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, 请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法, 参数不同时,方法能重载吗?

在 Mybatis 中,每一个标签,都会被解析为一个MapperStatement 对象。

3.Mybatis如何进行分页?Mybatis分页插件的原理是什么?

  1. 使用Mybatis里面的第三方插件,
  2. 使用方式:在将要执行的sql语句之前使用分页插件:pageHelper.starPage(pageNum,pageSize);
  3. pageNum:表示的是页码,也就是说有多少页
  4. pageSize:就是一个页中显示几条数据(数量)
  5. 使用Mybatis插件(也称为拦截器)机制。对需要使用分页的功能进行增强,也就是重写sql语句,根据不同的数据生产不同的分页语句
  6. mysql会生产limit语句
  7. MyBatis中XML 映射文件中常见的标签

SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):

cache – 对给定命名空间的缓存配置。

cache-ref – 对其他命名空间缓存配置的引用。

resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。

parameterMap – 已被废弃!老式风格的参数映射。更好的办法是使用内联参数,此元素可能在将来被移除。

sql – 可被其他语句引用的可重用语句块。

insert – 映射插入语句

update – 映射更新语句

delete – 映射删除语句

标签:语句,面试题,分页,映射,常见,插件,sql,Mybatis
From: https://blog.51cto.com/u_13529088/8925869

相关文章

  • RabbitMQ面试题【理论知识】
    常用交换机DirectExchange直连交换机消费方式为一对一,即每个消息只会被消费一次,当有多个消费者时,消费方式为轮询。TopicExchange主题交换机,可以绑定一个路由,路由可以是固定的也可以是通配符,当发送消息的路由同时满足时,都可以收到消息,多个消费者时,消费方式为轮询。FanoutExchange扇......
  • 2023最新高级难度C语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度C语言面试题合集问:在C语言中,如何使用结构体进行面向对象编程?在C语言中,虽然没有像C++或Java那样的类和对象概念,但可以通过结构体、函数指针和其他技术来模拟面向对象编程的某些特性。以下是一些使用结构体进行面向对象编程的关......
  • 2023最新中级难度C语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度C语言面试题合集问:在C语言中,如何使用指针访问数组的各个元素?在C语言中,数组名实际上是一个指向数组第一个元素的指针。因此,我们可以使用指针算术来访问数组的各个元素。下面是一个示例代码,演示如何使用指针访问数组的各个元素:......
  • 哪些问题是smt贴片生产加工常见的?
    SMT贴片生产加工中常见问题有很多,下面英特丽来列举一些常见问题,以及问题的解决办法。1. 贴片位置偏移:这是一种常见的问题,如果贴片位置偏移,可能会导致焊接不良或与其他元件相互干扰。贴片前认真检查贴片机的校准和定位系统,确保元件精确地放置在正确的位置上。2.贴片不良:这包括贴片......
  • 2023最新初级难度C语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度C语言面试题合集问:C语言中,main函数的返回值类型是什么?在C语言中,main函数的返回值类型是int。这是因为main函数是程序的入口点,它返回一个整数值给操作系统,以表示程序的退出状态。通常,如果程序正常退出,main函数返回0;如果程序出现......
  • 2023最新高级难度算法面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度算法面试题合集问:哪些算法可以用在分布式环境中以解决大规模数据问题?举例说明其中一些。在分布式环境中解决大规模数据问题,可以使用许多算法。这些算法通常被设计为能够在多个计算节点上并行处理数据,从而提高处理速度和效率。......
  • 2023最新中级难度算法面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度算法面试题合集问:请描述一下排序算法的时间复杂度?排序算法的时间复杂度是指排序算法执行所需的时间与待排序数据规模之间的关系。通常使用大O表示法来描述算法的时间复杂度。常见排序算法的时间复杂度如下:冒泡排序(BubbleSo......
  • mybatisPlus注解fill = FieldFill.UPDATE和updateStrategy = FieldStrategy.IGNORED的
    由于当时使用mybatisPlus的updateById更新数据,习惯性的认为字段为null的不更新。但是上线后,出问题了。只更新状态字段,其他的一些属性竟然被置空了。赶紧排查,发现实体类中这些字段有fill=FieldFill.UPDATE,导致更新的时候如果这个字段为null也会更新为null。 同样作用的还有@T......
  • mybatis获取insert操作自增主键值原理
    大家好,我是joker,希望你快乐。上一篇mybatisinsert操作获取自增主键中介绍了如何获取主键值,接下来这篇我们将通过跟踪源码的方式进一步探究mybatis是如何获取到主键的。其实上一篇中,通过官方文档我们可以看出mybatis还是通过 JDBC的getGeneratedKeys方法获取由数据库内部生......
  • 【SpringBootWeb入门-16】Mybatis-基础操作-多条件查询操作&XML文件配置SQL
    1、章节回顾上一篇文章我们讲解了Mybatis的增改查操作,本篇继续学习Mybatis的复杂查询操作(多条件查询)。2、增删改查操作-多条件查询操作根据条件姓名、性别、入职时间来查询员工表emp数据,其中员工姓名支持模糊匹配,性别进行精确匹配,入职时间进行范围查询,查询结果按照最后修改时间......