视频分享地址: https://space.bil|

明月照江江

园龄:7年4个月粉丝:34关注:0

2022-04-16 13:27阅读: 14评论: 0推荐: 0

mybatis总结

今天基于mybatis 做了一个动态选择查询字段的sql

发现mybatis 有两种传值的方式${}#{}

#{}会在传入的值两边加入双引号,这样当如想在表名或者 字段名 上操作时,这里是不行的,

比如我想查询 hello 这个字段 ,我这么写的:

String field = "hello"
  
 ---
 mybatis的xml中
 SELECT #{field} FROM table;
执行的结果会变为:
  SELECT "hello" FROM table;

这样是查不出结果的
  
---
  如果一定要这样操作,需要使用${}
比如
  SELECT ${field} FROM table;

PS: 请尽量使用#{}, 因为有双引号,可以防止SQL注入问题

​ 使用${}注意保护

默认情况下,使用 #{} 格式的语法会导致 MyBatis 创建 PreparedStatement 参数占位符并安全地设置参数(就像使用 ? 一样)。 这样做更安全,更迅速,通常也是首选做法.

不过有时你就是想直接在 SQL 语句中插入一个不转义的字符串,你可以使用${}

本文作者:明月照江江

本文链接:https://www.cnblogs.com/gradyblog/p/16152556.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   明月照江江  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起