ibatis实战之使用内联参数--用#做占位符
----------
内联参数就是一种在已映射语句中添加查询条件的简单方式,你可以使用两个不同的方法来设置内联参数。
第一个方法是使用散列(#)符号。以下的例子就使用#符号传递进一个简单的内联参数,以通过accountId值来获取一个唯一的Account bean:
<select accountId,
username,
password,
firstName,
lastName,
address1,
address2,
city,
state,
postalCode,
country
from Account
where accountId = #value#
</select>
上面这条已映射语句中的字符串#value#是一个占位符,用于告诉ibatis你将传递一个简单参数,ibatis在执行该已映射语句之前会使用此参数来设置SQL。该已映射语句可以用如下方式调用:
account = (Account)sqlMap.queryForObject("Account.getByIdValue",new Integer(1));
下面花一点时间来看一下ibatis框架是如何处理该语句的。首先,ibatis将查找名为Account.getByIdValue的已映射语句,并把#value#占位符变换为一个预备语句参数,见如下代码的最后一行:
select accountId,
username,
password,
firstName,
lastName,
address1,
address2,
city,
state,
postalCode,
country
from Account
where accountId = ?
然后,ibatis将这个参数的值设置为1,并执行该预备语句。最后,ibatis接收该结果行,把它映射到一个java对象,并返回这个对象。尽管看上去这可能像是很底层的信息,但理解此处究竟发生了什么是非常重要的。有关ibatis最觉见的问题之一就是:“如何在WHERE子句中使用LIKE?”通过上面这条语句,你就可以很容易地明白:为何输入的参数必须具有通配符,以及为何它们不能被轻易地插入到SQL语句中。对于这个难题,有3种可能的解决方案:
1.在所传入的参数中使用SQL通配符。
2.要搜索内容的文本必须是能够被参数化的SQL表达式的一部分。例如:'%'||#value#||'%'
3.改为使用替代语法(用$作占位符)
分享到:
相关推荐
iBATIS-SqlMaps-2-Tutorial_cniBATIS-SqlMaps-2-Tutorial_cn.pdf.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
apache开源项目源码ibatis-3-core-src-3.0.0.227 ibatis框架java源程序 spring,struts,hibernate,ibatis,框架源码 各种ibatis框架应用源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其...
《iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个...
转ibatis动态sql - phoebus0501 - 博客园.mht
ibatis-sqlmap ibatis-sqlmap-2 ibatis-sqlmap-2.jar.zip
iBATIS-SqlMaps-2-Tutorial_en.rar
java iBATIS-SqlMaps-2-快速入门教程
ibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zip
iBATIS-SqlMaps-2-Tutorial_cn
ibatis实战中文版 一共2个文件 ibatis in action
ibatis实战中文版 一共2个文件 ibatis in action
ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip
iBATIS-SqlMaps-2-Tutorial_en.pdf
Struts+Spring+Ibatis环境配置(一) - zwjxf的专栏 - 博
ibatis-3-core-3.0.0.200
ibatis+spring之Ajax应用-根据车牌查询所在省
iBATIS实战
ibatis与spring整合,内附文档