MyBatis中的$和#,你知道他们的区别吗?

java-教程王 MyBatis 2022-04-11 23:07:58 18057 1
下文笔者将讲述MyBatis中的$和#的区别简介说明,如下所示:
在MyBatis的xml配置文件中
   我们经常看见$和#后面紧跟变量,那么他们有什么区别呢?
下文笔者将一一道来,如下所示:

1.#{ }是预编译处理
 MyBatis在处理#{ }时,它会将sql中的#{ }替换为?
然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号 
2.#{} MyBatis在处理时,直接采用字符串替换的方式

注意事项:
   使用${ }会导致sql注入
   不利于系统的安全性
例:
<select id="selectPostList" parameterType="SysPost" resultMap="SysPostResult">
	    <include refid="selectPostVo"/>
		<where>
			<if test="postCode != null and postCode != ''">
				AND post_code like concat('%', #{postCode}, '%')
			</if>
			<if test="status != null and status != ''">
				AND status = #{status}
			</if>
			<if test="postName != null and postName != ''">
				AND post_name like concat('%', #{postName}, '%')
			</if>
		</where>
	</select>
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: http://www.Java265.com/JavaFramework/MyBatis/202204/2839.html

最近发表

热门文章

好文推荐

Java265.com

//www.java265.com

站长统计|USA-001

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

Honor accompaniments