mybatis - 获取sql字符串的映射结果

时间:2014-06-22 19:19:44

标签: java sql mybatis

我在整个应用程序中广泛使用MyBatis,但在一个特定实例中,我有一个来自外部控件的大型用户生成的SQL查询(作为字符串)。它生成的SQL总是返回相同的静态字段,但where子句是动态的。我发现我可以使用 org.apache.ibatis.jdbc.SqlRunner 执行此查询,但结果始终采用地图列表的形式。我希望能够使用我的许多映射器XML文件中指定的现有resultMap,以便查询返回可用的映射对象。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

像往常一样映射查询,但使用string substitution代替where子句的参数:

<select id="myQuery" resultMap="myResultMap">
  select field1, field2 from mytable
  where ${whereClause}
</select>

请注意,不使用#{}语法${}。它会逐字插入指定的参数。