文档章节

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

牧羊人Berg
 牧羊人Berg
发布于 2016/06/28 10:38
字数 237
阅读 95
收藏 2
点赞 1
评论 0

做个小笔记:

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
粉丝 23
博文 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
ie 11 跨域问题

问题描述: 用angular2去做http请求时在IE11上测试出现异常,在谷歌/火狐上测试一切正常 原因分析: http传参时传入了中文汉字的参数,谷歌和火狐浏览器都对中文汉字做了URL转码,但是IE11没...

今天来找bug
2016/10/11
41
0
C#中方法参数的四种类型

C#中方法的参数有四种类型: -值参数:不含任何修饰符。方法中的形参是实参的一份拷贝,形参的改变不会影响到内存中实参的的值,实参是安全的。 -引用参数:以ref修饰符声明。传递的参数实...

晨曦之光
2012/03/09
62
0
恒宇少年/mybatis-enhance

欢迎使用MyBatis Enhance 欢迎加群交流 Enhance 交流群 ①:782540319 SpringBoot 核心技术①:373229384 SpringBoot 核心技术②:588351309 MyBatis Enhance是什么? 是对于原生的的增强编写...

恒宇少年
05/13
0
0
连接MyBatis内部SqlSession与业务接口的代理类MapperProxy

目的 系统中的业务接口需要调用MyBatis的SQL时,业务接口定义的参数不符合MyBatis自己内部的规范,那么就需要把业务接口的参数转换成MyBatis内部参数规,MapperProxy代理就完成了这一职责,下...

tara_qri
2015/11/01
0
0
写了一个Handler重写路径,但是在传参的时候出现了问题

@JFinal 你好,想跟你请教个问题: 写了一个Handler重写路径,但是在传参的时候出现了问题 public class NewsRouteHandler extends Handler { // System.out.println("date:"+date+"====="+"...

铂金蛋蛋
2014/06/20
247
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java集合元素的默认大小

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使...

竹叶青出于蓝
5分钟前
1
0
Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+BootstrapTable列表\ ElementUI列表表单)...

Jeecg
9分钟前
0
0
export 和 module.export 的区别

在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,...

孟飞阳
11分钟前
0
0
技术教育的兴起

技术教育的兴起 作者: 阮一峰 1、 有一年,我在台湾环岛旅行。 花莲的海边,我遇到一对台湾青年夫妻,带着女儿在海滩上玩。我们聊了起来。 当时,我还在高校当老师。他们问我,是否觉得台湾...

吕伯文
11分钟前
0
0
Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,...

mylxsw
16分钟前
0
0
mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsol......

writeademo
19分钟前
0
0
Java NIO:浅析I/O模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念...

yzbty23
19分钟前
0
0
了解iOS消息推送一文就够:史上最全iOS Push技术详解

本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表。 1、引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ、微信等IM界面处于前台时,聊天消息和指令都会...

JackJiang-
21分钟前
0
0
Mysql汉子转拼音

update t_app_city SET CITY_NAME_BEGIN = ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(CITY_NAME USING gbk),1)),16,10), 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA......

尘叙缘
23分钟前
0
0
大数据构建智慧城市“新引擎”,加速推进新旧动能转换

——“大数据与智慧城市”技术交流分享会——济南站召开 7月13日,“大数据携手智慧城市,助力山东新旧动能转换”技术交流分享会——济南站在山东信息通信技术研究院会议室成功举办,此次会议...

左手的倒影
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部