iBatis 3.x 动态SQL元素之实现
在iBatis 2.x中,可以使用$xxxx$语法在SQL中定义可动态插入的SQL元素。而在iBatis 3.x中已经发生了很大变化。
首先,语法变为 ${xxxx} 形式;
其实,你要使用的SQL元素必须是一个Java Bean的属性,也说是输入参数必须为Java Bean;在说明文档中也没有说明如何直接使用一个String类型的输入参数。
于是,我用DEBUG分析了iBatis 3.x的代码,发现还是有办法使用单个String类型的输入参数,但是你的动态SQL元素必须定义为${_parameter}。比如:
<select id="getRecordCount" parameterType="string" resultType="int">
select count(*) as recordNumber from (${_parameter}) t1
</select>
注:上面的${_parameter}不可修改为其它文字