40.MyBatis防止sql注入的操作
- 使用#可以防止SQL注入
41.MyBatis常用的标签
42.#与$的区别
#{}是预编译处理,${}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;
Mybatis 在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止 SQL 注入,提高系统安全性。
54.MyBatis如何做分页
-
数组分页
查询出全部数据,然后再list中截取需要的部分。
-
sql分页
-
拦截器分页
创建拦截器,拦截mybatis接口方法id以ByPage结束的语句
-
RowBounds分页
57.MyBatis是否可以映射到枚举类
Mybatis 可以映射任何对象到表的一列上。映射方式为自定义一个 TypeHandler ,实现 TypeHandler 的 setParameter()
和 getResult()
接口方法。
TypeHandler 有两个作用,一是完成从 javaType 至 jdbcType 的转换,二是完成 jdbcType 至 javaType 的转换,体现为 setParameter()
和 getResult()
两个方法,分别代表设置 sql 问号占位符参数和获取列查询结果。