有关mybatis的笔试
1.mybatis 中的 #{} 和 ${} 的区别? 答 : 定义: #{} 是预编译。 作用: mybatis 处理 #{} 时, sql 会将它替换成 ? ,然后调用 PreparedStatement 的 set 方法来赋值;还可以防止 sql 注入。 注释: sql 注入是一种注入攻击,可以执行恶意的 sql 语句。是通过 sql 代码插入数据库查询,使得攻击者可以控制 web 应用服务后面的数据库服务器 , 可以对数据库进行一些操作。比如添加,修改和删除数据库中的数据。 定义 :${} 字符串替换。 作用: mybatis 处理 ${} 时, sql 会将它替换成变量的值。 2.mybatis 有几种分页方式? 答 : 有四种,分别是数组分页, sql 分页,拦截器分页, Rowbounds 分页。 3.mybatis 的物理分页与逻辑分页的区别? 答 : 定义:物理分页是依赖于某个物理实体,这个实体就是数据库,例如 mysql 数据库提供的 limit 关键字,程序员编写关于 limit 关键字的查询语句,数据库就会返回分页结果。 定义 : 逻辑分页是程序员编写的代码,数据库返回的不是分页结果,而是全部数据,然后程序员通过代码获取分页数据。常用操作就是一次性查询全部数据存放到 list 集合,然后通过索引获取指定范围的数据, 两者对比: 数据库的负担