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

Ibatis基础知识:#与$的区别

时间:2014-05-08 10:56:21      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:ibatis   持久层框架   

背景

	Ibatis是一个轻量级、非侵入式的持久层框架,适用于范围较广、较轻便……当然,无论J2EE中哪一个持久层框架,都会基于JDBC(不细究JNDI方式)。我们在SqlMap中编写SQL,利用各种SqlMap标签处理业务逻辑,利用参数标记传递参数。
	在实际开发过程中,弄明白#号$号的区别很重要,下面我们就来分析一下这两个SqlMap参数标记。

参数标记

#号方式

	解析以#号标记的参数时,Ibatis直接利用JDBC提供的参数标记(?号),将内存中的参数传递给数据库。这时,我们须要保证Java对象参数的数据类型,与数据库字段的参数类型相匹配。
	优点:自适应数据类型;防注入式攻击
	缺点:受JDBC参数标记限制,只能用于Where条件、Case...When语句

$号方式

	解析以$号标记的参数时,Ibatis将Java对象参数以字符串方式进行替换,相当于直接写在SQL语句里。
	优点:灵活简便;不受JDBC参数标记限制,可用于任意SQL语句位置
	缺点:需要注意数据类型,也就是自己添加单引号;需要防范注入式攻击

小结

	这两种参数标记相辅相成,为了解决不同问题而生,我们会用对、用好。

Ibatis基础知识:#与$的区别,布布扣,bubuko.com

Ibatis基础知识:#与$的区别

标签:ibatis   持久层框架   

原文地址:http://blog.csdn.net/rywaqpf/article/details/25275049

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