JAVA面试题(28)

    本文首发于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所造成的内存压力比较大

转载于:https://juejin.im/post/5cdd8180e51d456e5c5babe3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值