本文首发于cartoon的博客
转载请注明出处:cartoonyu.github.io/cartoon-blo…
- 什么是 ORM 框架?
- ORM全称是Object-Relational Mapping,中文名称为对象-关系映射
- 使用ORM框架,能大幅度减少数据库操作代码的编写,将主要精力放在对象-关系优化上
- 常见的ORM框架有hibernate,Mybatis等
- Mybatis 中 #{}和 ${}的区别是什么?
- 在程序编译时,#{}会用?代替,${}只是简单的字符串插入
- #{}作用相当于PrepareStatement,${}作用相当于Statement
- #{}能在一定程度上防止SQL注入,${}不能
- Mybatis 有几种分页方式?
- 逻辑分页
- 从数据库返回所有条件符合的数据到内存中,在后端通过逻辑进行分页
- 物理分页
- 利用limit关键字分批查询数据库符合条件的数据,内存中只存在分页后的数据
- 拦截器分页、
- 自定义拦截器实现了拦截所有以ByPage结尾的查询语句
- 利用获取到的分页相关参数统一在sql语句条件上加上limit分页相关语句
- RowBounds分页
- 类似逻辑分页
- 逻辑分页
- RowBounds 是一次性查询全部结果吗?为什么?
- RowBounds是一次性查询全部结果
- 从RowBounds源码看出,RowBounds最大数据量为Integer.MAX_VALUE(2147483647),大概是20亿条
- 在实际开发不建议使用RowBounds。数据量达到一定程度,RowBounds所造成的内存压力比较大