Mybatis 面试题 真正的 offer 偏方 Java 基础 Java 高级

Mybatis 面试题 真正的 offer 偏方 Java 基础 Java 高级

一、参考资料

【25年新版Java面试场景题+八股文!真正的offer偏方,跳槽面试你一定用得上!Java面试丨Java场景题丨Java丨Java基础丨Java高级】 https://www.bilibili.com/video/BV1w44y1w7Zh/?p=89\&share_source=copy_web\&vd_source=855891859b2dc554eace9de3f28b4528

二、笔记总结

01、Mybatis 是如何进行分页的

  • 直接在 select 语句增加数据库提供的分页关键字
  • 使用 Mybatis 提供的 RowBounds 对象,实现内存级别的分页。
  • 使用 Mybatis 提供的拦截器,在 SQL 执行前动态拼接分页关键字。

02、Mybatis 中 ${} 和 #{} 的区别是什么

  • Mybatis 提供了 # $ 号两种占位符,都是实现动态 SQL 的一种方式,通过这两种方式可以把参数传递到 XML 里面。

号占位符等同于 JDBC 中的 ? 号占位符,# 号占位符可以防止 SQL 注入。

  • $ 号占位符相当于直接把原始参数拼接到 SQL 里面,无法防止 SQL 注入的问题。

03、说一说 Mybatis 里面的缓存机制

  • Mybatis 设计了二级缓存这样一个机制来提升数据检索效率,避免每一次数据检索都去查询数据库。
  • 一级缓存是 SqlSession 级别的缓存,没个用户都需要通过 SqlSession 去查询数据库,为了避免每次都查询数据库,Mybatis 把数据缓存到 SqlSession 的本地缓存中。
  • 一级缓存无法做到跨 SqlSession 级别的缓存,因此引入了二级缓存设计,当多个 SqlSession 查询数据的时候,只要有一个用户拿到了数据就会放入二级缓存中,其它的 SqlSession 就可以直接从二级缓存加载数据。

04、Mybatis 何时使用一级缓存,何时使用二级缓存

  • 同 03
相关推荐
guodingdingh17 分钟前
软件开发工作问题总结0718
java·开发语言·数据库
咖啡八杯2 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔4 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔5 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程