分页的代码写在java层,计算类的代码不能写在mapper文件中。
#{} : 根据参数的类型进行处理,比如传入String类型,则会为参数加上双引号。#{} 传参在进行SQL预编译时,会把参数部分用一个占位符 ? 代替,这就是为什么计算类的代码不能写在mapper文件中的原因,这样可以防止 SQL注入。
${} : 将参数取出不做任何处理,直接放入语句中,就是简单的字符串替换,并且该参数会参加SQL的预编译,需要手动过滤参数防止 SQL注入。
因此 mybatis 中优先使用 #{};当需要动态传入 表名或列名时,再考虑使用 ${} 。
Mybatis框架分页踩坑,${}和 #{}区别
最新推荐文章于 2024-05-20 23:19:41 发布