我在整个应用程序中广泛使用MyBatis,但在一个特定实例中,我有一个来自外部控件的大型用户生成的SQL查询(作为字符串)。它生成的SQL总是返回相同的静态字段,但where子句是动态的。我发现我可以使用 org.apache.ibatis.jdbc.SqlRunner 执行此查询,但结果始终采用地图列表的形式。我希望能够使用我的许多映射器XML文件中指定的现有resultMap,以便查询返回可用的映射对象。我该怎么做呢?
答案 0 :(得分:1)
像往常一样映射查询,但使用string substitution代替where子句的参数:
<select id="myQuery" resultMap="myResultMap">
select field1, field2 from mytable
where ${whereClause}
</select>
请注意,不使用#{}
语法${}
。它会逐字插入指定的参数。