- Mybatis 中 #{}和 KaTeX parse error: Expected 'EOF', got '#' at position 53: …数不带引号 在大多数情况下使用#̲{},如果使用order by…{}
使用${}时会有sql注入的风险 - Mybatis 有几种分页方式?
数组分页
sql分页
拦截器分页
RowBounds分页(逻辑分页) - RowBounds 是一次性查询全部结果吗?为什么?
- Mybatis 逻辑分页和物理分页的区别是什么?
1:逻辑分页 内存开销比较大,在数据量比较小的情况下效率比物理分页高;在数据量很大的情况下,内存开销过大,容易内存溢出,不建议使用
2:物理分页 内存开销比较小,在数据量比较小的情况下效率比逻辑分页还是低,在数据量很大的情况下,建议使用物理分页 - Mybatis 是否支持延迟加载?延迟加载的原理是什么?
- 说一下 Mybatis 的一级缓存和二级缓存?
一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空
二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache - Mybatis 和 Hibernate 的区别有哪些?
性能方面 hibernate全自动效率慢 mybatis半自动 效率快
封装 hibernate 是在jdbc上进行了一次封装 mybatis基于原生的jdbc,在运行速度上有优势
sql hibernate 使用的是封装好的sql mybatis sql手动编写按需查询 更灵活,可控性更好,更优化 - Mybatis 有哪些执行器(Executor)?
执行器Executor,执行器负责整个SQL执行过程的总体控制。
参数处理器ParameterHandler,参数处理器负责PreparedStatement入参的具体设置。
语句处理器StatementHandler,语句处理器负责和JDBC层具体交互,包括prepare语句,执行语句,以及调用ParameterHandler.parameterize()设置参数。
结果集处理器ResultSetHandler,结果处理器负责将JDBC查询结果映射到java对象。 - Mybatis 分页插件的实现原理是什么?
分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。 - Mybatis 如何编写一个自定义插件?
关于Java208面试题答案Mybatis
猜你喜欢
转载自blog.csdn.net/weixin_44100313/article/details/89884571
今日推荐
周排行