当前位置: 首页 > 编程日记 > 正文

Mybatis 中$与#的区别

1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id ='1'.

2 $是将传入的数据直接显示生成sql语句,eg:select id,name,age from student where id =${id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id = 1.

3 使用#可以很大程度上防止sql注入。(语句的拼接)

4 但是如果使用在order by 中就需要使用 $.

5 在大多数情况下还是经常使用#,但在不同情况下必须使用$.

我觉得#与的区别最大在于:#{} 传入值时,sql解析时,参数是带引号的,而的区别最大在于:#{} 传入值时,sql解析时,参数是带引号的,而{}穿入值,sql解析时,参数是不带引号的。

一 : 理解mybatis中 $与#

在mybatis中的$与#都是在sql中动态的传入参数。

eg:select id,name,age from student where name=#{name}  这个name是动态的,可变的。当你传入什么样的值,就会根据你传入的值执行sql语句。

二:使用$与#

#{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。

${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。

name-->cy

eg:  select id,name,age from student where name=#{name}   -- name='cy'

select id,name,age from student where name=${name}    -- name=cy


原文出处:

[1] NAYNEHC, Mybatis 中$与#的区别, http://www.cnblogs.com/hellokitty1/p/6007801.html

转载于:https://www.cnblogs.com/ryelqy/p/10104117.html

相关文章:

UUID.randomUUID()生成唯一识别码

目录 1、UUID 的概念 2、UUID的组成 3、UUID.randomUUID()使用 1、UUID 的概念 UUID(Universally Unique Identifier):通用唯一识别码,是一种软件建构的标准。 UUID 目的是让分布式系统中的所有元素,都能有唯一的…

人生应该记住的16句话(转载)

1、再烦,也别忘微笑;再急,也要注意语气; 再苦,也别忘坚持;再累,也要爱自己。 2、 低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀。 3、 成功的时…

转:一个简单的基于WEB的QTP自动化测试框架-SAFFRON

来源: http://www.itestware.com/ctest/index.php?optioncom_content&viewarticle&id62:webqtp-saffron&catid35:testing_is_believing 06年的时候,Mercury 提供了一个QTP自动化测试框架原型 - SAFFRON,可用于指导我们开发基于WEB的自动化测…

积极学习的朋友

自从去年7月反省之后,认识的朋友逐渐多了,天下那么大,优秀的人很多,通过网络认识是一个很不错的途径,经过一段时间后,圈子范围扩大了很多,行业上和非行业上都有涉及,对自己认知冲击很…

hive向表格中插入数据并分析语句

1,---导入mds_imei_month_info set hive.exec.max.dynamic.partitions 100000; //最大的动态分区表 set hive.support.concurrencyfalse; //是否支持并发 set hive.exec.max.dynamic.partitions.pernode 100000; //each mapper or reducer可以创建的最大动态分区数 …

资源与工具下载

Red Hat Linux镜像文件 链接:https://pan.baidu.com/s/1N3Khh6pyKpMkOnkEL-U9_A 提取码:0hnu jdk1.8(32位64位)安装版 链接:https://pan.baidu.com/s/15Jm6Ca6IBR3OEauge-4FYQ 提取码:uo2l Tomcat 8(32位64位)安装版 链接…

Global.asax中Application_Error无法执行

Global.asax中Application_Error无法执行问题解决后才发现这句是错误的,之前用VS2005开发后发布到服务器上也出现这种情况,后来莫名 的好了(是解决了没发现原因)。之前的文章链接后来用catch捕捉后真相大白,System.Security.SecurityExceptio…

虚拟化如何做实?详解戴尔2.0版解决方案

继5月份推出虚拟化解决方案后,2008年9月16日,戴尔又宣布推出包括新款服务器、存储产品,管理工具及基础设施咨询服务在内的全新虚拟化2.0解决方案,致力于为客户提供通向虚拟化的智慧之道。戴尔的虚拟化解决方案包括哪些具体的内容&…

Socket/ServerSocket 选项

Socket/ServerSocket 选项 原文:Socket/ServerSocket 选项在网络编程中,Socket/ServerSocket有一些选项用来自定义一些行为,现在分享一下。Socket选项 1.TCP_NODELAY 在Socket发送数据时,默认情况下,数据会先进入缓冲区&#xff0…

MySQL主从复制的常用拓扑结构

1、复制的常用拓扑结构 复制的体系结构有以下一些基本原则: (1) 每个slave只能有一个master; (2) 每个slave只能有一个唯一的服务器ID; (3) 每个master可以有很多slave; (4) 如果你设置log_slave_updates,…

统计java文件中的代码行数

统计Java代码行数工具类 —— CodeCounterUtil.java 统计指定目录下的java文件中代码行数 —— public static int getCodeNumFromFolder(String filePath)统计具体文件中的java代码行数 —— public static int getCodeNumFromFile(String filePath)import java.io.Buf…

jQuery插件thickbox在ie下垂直居中问题

jQuery 插件 thickbox 3.1 在ie下总不能垂直居中,按“http://jamazon.co.uk/web/2008/03/17/thickbox-31-ie7-positioning-bug/”上的方法改了也没用,咋办? 我是这样改的:管它ie6还是ie789,一视同仁! 原284…

dos分区:C语言建立多个PRI DOS分区

dos分区:C语言建立多个PRI DOS分区 来源: 发布时间:星期四, 2008年9月25日 浏览:127次 评论:0一、引言 在DOS系统下,在计算机应用培训中因培训要求不同, 对软件的要求也不同,由于学员的误操作,存放在硬盘上的软件和重要数据容 易被…

简单几步让CentOS系统时间同步

在使用CentOS系统的时候,我们可能会遇到时间不准的问题,那我们如何解决这个我问题呢,下面就来教大家一个CentOS系统时间同步的方法,希望大家可以解决自己所存在的疑问。 CentOS系统时间同步的步骤如下: 新装的CentOS系…

挨踢人生路--记我的10年18家工作经历 - 后记

挨踢人生路--记我的10年18家工作经历 - 前言挨踢人生路--记我的10年18家工作经历 - 从大学说起――不得不说的一些事情挨踢人生路--记我的10年18家工作经历 - 第1家公司,在老家的工作挨踢人生路--记我的10年18家工作经历 &#xf…

FileUtil

文件工具类 —— FileUtil.java 获取Web工程的根目录 —— String getBasePath()方法获取文件名称 —— public static String getFileName(String filePath)方法获取文件名称前缀 —— public static String getPrefixOfFileName(String filePath)方法获取文件名后缀(…

C# Sato CL4NX打印机发送SBPL指令打印表面信息、RFID芯片数据写入

待更新..转载于:https://www.cnblogs.com/zh7791/p/7650073.html

同步SQL Server 2000 数据库

为什么要同步SQL Server 2000 数据库,它都用在什么场合 数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份 数据实时备份同步,一台服务器负载不起时,可以用来做负载均衡 数据实时备份同步,数据库服务器…

【Leecode】两数相加

学习了链表结构,链表中元素的访问,对象指针的初始化与赋值,链表的创建(多个节点链接起来),进位计算的表达。 100ms /*** Definition for singly-linked list.* struct ListNode {* int val;* ListN…

推荐一个HTML的语法高亮解析器

http://code.google.com/p/syntaxhighlighter/wiki/Languages支持高亮的语法如下Language Aliases C cpp, c, c C# c#, c-sharp, csharp CSS css Delphi delphi, pascal Java java Java Script js, jscript, javascript PHP php Python py, python Ruby rb, ruby, rails, ror S…

angularJS中directive与controller之间的通信

当我们在angularJS中自定义了directive之后需要和controller进行通讯的时候,是怎么样进行通讯呢? 这里介绍3种angular自定义directive与controller通信的指令。 1.指令作用域中的"" 作用:把当前属性作为字符串传递实现指令与html页…

Eclipse启动失败:No java virtual machine was found after searching the follwing locations

Eclipse启动失败,错误信息如下如所示: 通过阅读错误信息,可以看到错误原因和 javaw.exe路径 有关; 打开eclipse.ini文件,也就是启动Eclipse的初始化文件: 在本地计算机中找到jdk安装路径下javaw.exe文件&a…

Cisco路由器安全配置必用10条命令

当谈到配置一台新的cisco路由器&#xff0c;多数配置依赖于路由器的类型以及它将服务的用途。然而&#xff0c;每位管理员都有其自己的“正确”配置每台路由器的命令列表。笔者将和你分享他自己配置路由器的十条命令列表。<?xml:namespace prefix o ns "urn:schemas…

Tensorflow学习教程------模型参数和网络结构保存且载入,输入一张手写数字图片判断是几...

首先是模型参数和网络结构的保存 #coding:utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_datamnist input_data.read_data_sets(MNIST_data,one_hotTrue) #每个批次的大小 batch_size 100 n_batch mnist.train._num_examples // ba…

IntelliJ IDEA乱码问题解决方法

目录 1、设置文件编码 2、设置控制台编码 3、设置Tomcat Server编码 4、修改配置文件编码内容 1、设置文件编码 第1步&#xff1a;打开IDEA&#xff0c;依次点击File、Settings... 打开Setting窗口&#xff1b; 第2步&#xff1a;在Settings窗口中&#xff0c;依次点击Ed…

Windows 7的CMD中 Telnet 无法执行的解决办法

在Windows 7的CMD中&#xff0c;执行telnet 192.168.1.10 80 会提示没有这个命令的提示&#xff0c;这是因为Win7默认是没有安装Telnet的&#xff08;在以往的WINDOWS系统中都是默认安装的&#xff09;。解决办法&#xff1a;在Win7中&#xff0c;进入控制面板&#xff0c;然后…

Qt——模态、非模态

模态&#xff1a; 只能操作对话框非模态&#xff1a;要使用 QDialog *_d new QDialog();_d->setattribute(Qt::WA_DeleteOnClose);_d->show();转载于:https://www.cnblogs.com/yangxinrui/p/10515249.html

c# 取两个时间的间隔

c#可以取两个时间的年月日时分秒之间的间隔&#xff0c;不受跨年月的影响。声明一个 TimeSpan System.TimeSpan ts dtNightEnd.Subtract(dtAmStart); dtNightEnd是原始时间 减去 dtAmStart 这个时间 获得一个TimeSpan TimeSpan 自带了间隔属性 ts.Days.ToString(); ts.Hours.…

MySQL数据表命令

显示表的相关信息&#xff1a; show table status like "表名"&#xff1b; show table status like "表名" \G 格式化&#xff0c;以记录条目形式显示&#xff0c;更清晰 注意&#xff1a;\G后面不能加分号&#xff0c;不然会出现查询错误。因为\G在…

undefined reference to 'pthread_create'问题解决(转)

undefined reference to pthread_createundefined reference to pthread_join问题原因&#xff1a;pthread 库不是 Linux 系统默认的库&#xff0c;连接时需要使用静态库 libpthread.a&#xff0c;所以在使用pthread_create()创建线程&#xff0c;以及调用 pthread_atfork()函数…