文档章节

Mybatis 中在传参时,$ 和# 的区别

牧羊人Berg
 牧羊人Berg
发布于 2016/06/28 10:38
字数 237
阅读 98
收藏 2

做个小笔记:

MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型。

在SQL中引用这些参数的时候,可以使用两种方式**#{parameterName}或者${parameterName},**

使用#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,例如传入参数 是“Smith”,那么在SQL(Select * from emp where name = #{employeeName})使用的时候就会转换为Select * from emp where name = 'Smith';

同时在SQL(Select * from emp where name = ${employeeName})使用的时候就会转换为 Select * from emp where name = Smith。

再次,从安全性上考虑,能使用#尽量使用#来传参,因为这样可以有效防止SQL注入的问题。

最后总结一下必须使用$引用参数的情况,eg: 那就是参数的int型的时候,必须使用$引用。

© 著作权归作者所有

共有 人打赏支持
牧羊人Berg
粉丝 24
博文 96
码字总数 87512
作品 0
深圳
私信 提问
mybatis--#{}与${}的区别

首先,谈谈mybatis怎么防止sql注入 上述是mybatis的mapping中一段代码,当请求的时候,控制台输出 我们会发现,无论输入什么参数,打印出的sql都是这样。原因是: mybatis启用了预编译功能,...

求是科技
2016/10/12
20
0
mybatis foreach 属性及其三种使用情况

foreach 属性介绍 foreach 用于迭代传入过来的参数。 它的属性介绍分别是 collection:表示传入过来的参数的数据类型。该参数为必选。要做 foreach 的对象,作为入参时,List 对象默认用 li...

奋斗的雲
06/30
0
0
MyBatis 示例之存储过程

存储过程在数据库中比较常见,虽然大多数存储过程比较复杂,但是使用 MyBatis 调用时,用法都一样,因此我们这一节使用一个简单的存储过程来了解 MyBatis 中存储过程的使用方法。 基本准备 ...

JAVA群450936584
2017/12/17
0
0
MyBatis中#和$的区别

MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型。 在SQL中引用这些参数的时候,可以使用两种方式#{parameterName}或者$...

觉皇
2016/04/14
154
0
【C++笔记】函数(笔记)

在头文件中进行函数声明 建议变量和函数应该在头文件中声明,在源文件中定义。 使用引用避免拷贝 如果函数无须改变引用形参的值,最好将其声明为常量引用。 尽量使用常量引用 表示数组大小的...

u013165921
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
3
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
4
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部