1.#{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。

select * from tableName where id = #{id}

假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的是‘12’;如果是整型,则id的值为12,

并且Mybatis会将上面SQL语句转化为jdbc的 select * from tableName where id =?,把?参数值设置为id的值。

这种方式使得sql语句是经过预编译的,它是把#{}中间的参数转义成字符串。

如下所示:xml映射文件

select * from xiaoxiao x,sister s where x.id=s.xiaoxiao_id and x.id=#{id};

该xml映射文件会到相应的数据库中请求相应的数据 ,并响应显示在控制台上或者系统页面上

2、${变量名}不进行数据类型匹配,直接替换

select * from tableName where id = ${id}

如果字段id为整型,sql语句就不会出错,但是如果字段id为字符型,那么sql语句就改写为

select * from tableName where id = '${id}'

3、#{}方式能够很大程度上防止sql注入;而${}方式无法防止sql注入。

根本就是: #{}这种取值方式是先编好sql语句再进行取值,即先编译后取值;而${}这种方式是先取值后再去编译sql语句,即先取值后编译。

注意:mybatis框架作为一款半自动化的持久层框架,其sql语句都要我们自己来手动编写,这个时候当然需要防止sql注入。

mysql中美元符号_Mybatis中#号和美元符号$符号的区别相关推荐

  1. mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多

    学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...

  2. mysql入参映射_Mybatis中的Mapper映射Sql中传参类型(如Bean,基本类型,List...)与取值的方式 与foreach的几种用法!!...

    附加:mybatis配置文件 /p> "http://mybatis.org/dtd/mybatis-3-config.dtd"> View Code 附加:测试文件 ...

  3. mysql中双引号和单引号有什么区别

    mysql中双引号和单引号有什么区别 前2天看到有人问,mysql中双引号和单引号有什么区别? 希望大家可以关注下公众号,支持一下,鞠躬感谢~ 我就直接po代码和截图了,如下 select * fro ...

  4. mysql is双竖线_oracle中的单引号和双竖线||以及q'间隔符

    单引号在 Oracle 中有三种身份: 1. 用来引用一个字符串常量,也就是界定一个字符串的开始和结束 2.转义符,对紧随其后出现的字符(单引号)进行转义 3. 表示它本身,也就是它作为一个字符串的一 ...

  5. javascript 符号_JavaScript中的美元符号($)和下划线(_)

    javascript 符号 The dollar sign ($) and the underscore (_) characters are JavaScript identifiers, whic ...

  6. 对勾和叉怎么打_word文档中输入对号“√ ”和 叉号“×”的方法 word怎么打钩/打叉/半对半勾符号...

    经常使用Word的人来说,许多问题是需要不断学习才能解决的,而Word中的功能更是需要一个长时间的经验积累才能熟练运用,而对于不熟练的使用Word的人来说,可能一个符号的输入都能被难倒,比如" ...

  7. xp 安装mysql数据库_Windows XP系统中安装MySQL5.5.28数据库图文教程

    Windows XP系统中安装MySQL5.5.28数据库图文教程 2014-07-13 16:35来源:中国存储网 导读:MySQL数据库的安装一共分为两个部分:数据库的安装和数据库的配置.一.My ...

  8. mysql日期格式化季度_mysql中常用日期比较与计算函数

    MySql中时间比较的实现 unix_timestamp() unix_timestamp 函数可以接受一个参数,也可以不使用参数. 它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1 ...

  9. sql oracle 自增长字段,在Oracle、MySQL、MS SQL Server中创设自动增长字段

    在Oracle.MySQL.MS SQL Server中创建自动增长字段 好吧,今天面试有道题,要各个数据库怎么建立自增长字段,顺便复习一下吧,最近面试很多数据库问题... 一:Oracle Orac ...

  10. Mysql数据库(八)——mysql高阶语句(中)

    Mysql数据库(八)--mysql高阶语句(中) 一.正则表达式(同shell脚本的正则表达式) 1.以"."代替任意一个字符 2.匹配前面字符多次 3.匹配前面字符至少一次 4 ...

最新文章

  1. java 判断ocx是否存在_OCX控件的注册卸载,以及判断是否注册
  2. 北大BBS2008年毕业生晒工资
  3. ubuntu12.04 mysql 安装_Ubuntu 12.04 安装 配置 访问MySQL
  4. 风控特征—时间滑窗统计特征体系
  5. 博士申请 | 香港中文大学(深圳)罗元教授招收计算机与信息工程全奖博士
  6. 深入了解React新引擎:React Fiber
  7. python怎么爬虫理数据_Python神技能 | 使用爬虫获取汽车之家全车型数据
  8. Git Diff 魔法
  9. 在酷热的就业天气寻找几丝凉意
  10. 服务端开发所需技能归纳
  11. 直播系统源码,直播平台系统源码
  12. 阿里云DataV与百度Sugar使用比较
  13. 在线答题-问卷调查小系统(附源码)
  14. HTML+CSS项目实践五:使用纯CSS实现点击文字切换图片效果(不使用JS)
  15. DP接口与HDMI接口的区别?
  16. 7-1 求奇数和 (15 分)本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:
  17. linux系统单网卡绑定双IP的方法
  18. Spring Boot3.0正式发布及新特性解读
  19. 9大吸金手游公司盘点 2013年营收破1亿美元
  20. 优化vue打包chunk-vendors.js 过大

热门文章

  1. vue表格根据属性值设置背景颜色、vue表格设置鼠标悬浮背景颜色、vue表格的隔行变色修改背景颜色
  2. 认知的方法论 --以学习python编程语言为例
  3. 计算机机房空调原理,机房精密空调的工作原理
  4. 中国传统文化课程笔记
  5. 【办公自动化Excel】制作图表
  6. forEach 终止循环
  7. 计算机主板内存设计规范,PC 新时代!DDR5 内存规范正式发布
  8. unity android gyro,Unity - 陀螺仪 - 仅绕一轴旋转
  9. 电脑断网的解决办法(方法不会对电脑或网络造成负面影响)
  10. wifi信号满格无法连接服务器,wifi正常为什么不能上网_一招解决wifi信号满格不能上网的方法...