码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-20 20:21:23      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:mybatis

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注入的问题。


最后总结一下必须使用$引用参数的情况,我能想到的目前只有一种,那就是参数的int型的时候,必须使用$引用。


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

标签:mybatis

原文地址:http://chengyou.blog.51cto.com/8355854/1765897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!