目录
Mybatis的一级、二级缓存?
一级缓存存储的作用域是session,当session flush或者close之后,session中的缓存会失效,此时一级缓存就开启
二级缓存和一级缓存机制相同,hashmap存储,作用域为mapper,二级缓存一般不用,因为他不好控制缓存的刷新,我们一般是用的是redis
MyBatis 的接口mapper可以重载么?
不可以,mybatis查找mapper内的方法是靠方法名,和参数无关。所以,对于mapper接口,Mybatis禁止方法重载
Hibernate 和 MyBatis 的区别?
mybatis是一个小巧方便,半自动化持久层框架,学习起来比较容易
hibernate是一个全自动化持久层框架,做sql优化难,学习也比较困难
#{}和${}的区别是什么?
- #{}是预编译处理,效率要高点,${}是字符串替换。
- #{} 可以有效的防止SQL注入,提高系统安全性。${}有sql注入的风险