我将以整条SQL语句放入HashMap中ru:
String baseSql = "select  * from testTable";
HashMap map = new HashMap();
map.put("testSql",baseSql);<select id="baseInfo" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
<![CDATA[
select * from ($testSql$) where 1 = 2;
]]>
</select>将map做为参数传人iBATIS配置文件,不管是使用 # 还是 $ 都会报表名无效或者无效字符的错误,不知道select * from ($testSql$) where 1 = 2;是不是有特殊的配置啊???

解决方案 »

  1.   

    select * from ($testSql$) where 1 = 2;表名两边为什么要加()?
    正常的使用是,表名使用$$包起来就可以了
    select * from $table_name$ where 1= 2
      

  2.   

    String baseSql = "select *  from (select * from testTable) where 1=1";
    map.put("testSql",baseSql);<select id="baseInfo" parameterClass="java.util.String" resultClass="java.util.HashMap">
    <![CDATA[
       $testSql$
    ]]>
    </select>
      

  3.   

    Mark,近期我也将用到iBATIS了,学习一下