Mybatis

一、#{}和${}的区别

#{}:预编译处理;${}:字符串替换

1)Mybatis 在处理 #{} 时,会将 SQL 中的 #{} 替换为 ? 号,调用 PreparedStatement 的 set 方法        来赋值;使用 #{} 可以有效的防止 SQL 注入,提高系统安全性;

2)MyBatis 在处理 ${} 时,就是把${} 替换成变量的值。


二、是如何进行分页,分页插件的原理

1)MyBatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内存分页,而非物理分页。可以在 SQL 内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。

2)分页插件的基本原理是使用 MyBatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 SQL,然后重写 SQL,根据 dialect 方言,添加对应的物理分页语句和物理分页参数


三、分页的四种方式

1)数组分页

2)SQL分页

3)拦截器分页

4)RowBounds分页


四、逻辑分页和物理分页的区别

1)物理分页速度上并不一定快于逻辑分页,逻辑分页速度上也并不一定快于物理分页。

2)物理分页总是优于逻辑分页:没有必要将属于数据库端的压力加到应用端来,就算速度上存在优势,然而其它性能上的优点足以弥补这个缺点。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值