您的位置:首页 > 教育 > 培训 > html css网页源码_免备案空间哪家好_西安疫情最新数据消息中高风险地区_福州搜索引擎优化公司

html css网页源码_免备案空间哪家好_西安疫情最新数据消息中高风险地区_福州搜索引擎优化公司

2025/3/20 20:03:33 来源:https://blog.csdn.net/Sweeping_Robot/article/details/146354458  浏览:    关键词:html css网页源码_免备案空间哪家好_西安疫情最新数据消息中高风险地区_福州搜索引擎优化公司
html css网页源码_免备案空间哪家好_西安疫情最新数据消息中高风险地区_福州搜索引擎优化公司

Java面试题详解

一、请介绍 MyBatis 中二级缓存的一些情况

问题:MyBatis 中二级缓存的作用和使用方法是什么?

答案

  • 一级缓存:默认开启,数据存储在 SqlSession 的生命周期中,SqlSession 关闭后缓存释放。由于 SqlSession 通常使用后马上关闭,缓存生存时间短,命中率低。
  • 二级缓存:作用范围更大,属于 Mapper namespace 级别。数据存储在 namespace 级别的缓存中,随着 MyBatis 加载长期存在于内存中,命中率比一级缓存高得多。
  • 二级缓存的开启和使用
    • 在 Mapper XML 文件中增加 <cache> 子标签,可配置缓存的淘汰算法、刷新时间、缓存数据总长度及是否只读。
    • 开启二级缓存后,所有查询操作会先从缓存中提取数据,若无则进行实际查询并将结果存入缓存。
    • 涉及写操作时,会更新底层数据库并清空当前 namespace 下的二级缓存,因此对于频繁写入的表不建议开启二级缓存。
    • 可通过 useCache="FALSE" 禁用特定查询的缓存,或使用 flushCache 在执行操作后强制清空缓存。

二、请介绍 MyBatis 支持哪些缓存淘汰策略

问题:MyBatis 中支持的缓存淘汰策略有哪些?

答案

  • FIFO(先进先出):先进入的缓存数据优先被淘汰。
  • LRU(最近最少使用):常用策略,最近频繁访问的数据保留,长时间未访问的数据优先淘汰。
  • SOFT(软引用):基于 JVM 的垃圾回收机制,内存不足时清理软引用数据。
  • WEAK(弱引用):比软引用更积极,垃圾回收时会清理弱引用数据。

三、请介绍 MyBatis 获取新记录自增主键是如何做到的

问题:MyBatis 如何获取新记录的自增主键?

答案

  • 对于支持自增主键的数据库(如 MySQL、SQL Server)
    • <insert> 标签中设置 useGeneratedKeys="true",并指定 keyPropertykeyColumn
    • 底层通过数据库的 last_insert_id() 函数获取最新主键值,并回填到实体对象的属性中。该函数基于连接执行,线程安全。
  • 对于不支持自增主键的数据库(如 Oracle)
    • 使用 <selectKey> 子标签,通过序列(sequence)生成主键值。
    • 在插入数据前执行 <selectKey> 语句获取序列值,并将其注入到实体对象的属性中,再执行插入操作。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com