面试-Mybatis
...大约 1 分钟
面试-Mybatis
Mybatis缓存机制
问:Mybatis缓存机制
答:一级缓存是MyBatis默认开启的缓存机制,它是指在同一个SqlSession内的缓存。当进行相同的查询时,如果该查询的结果已经在当前SqlSession的本地缓存中存在,则直接从缓存中获取结果,而不再去数据库查询。本地缓存的作用域是SqlSession,当SqlSession关闭时,本地缓存也会被清空。
二级缓存是指在SqlSessionFactory层面的缓存,它可以被多个SqlSession共享。当多个SqlSession执行相同的查询时,如果查询结果已经存在于二级缓存中,则直接从缓存中获取结果,而不会再去数据库查询。二级缓存的作用域是SqlSessionFactory,在整个应用的生命周期内有效。需要注意的是,二级缓存需要在MyBatis的配置文件中明确地配置开启。
#{}和${}区别
问:#{}和${}区别
答:两者都是实现动态SQL的一种方式。#{}相当于占位符可以防止SQL注入。使用${}方式传参,相当于直接把参数拼接到原始的SQL里面,不能防止SQL注入。
Powered by Waline v2.15.8
