spring / mybatis映射中的范围变量

时间:2011-11-30 19:48:27

标签: java spring mybatis

我有一个conversationScope.myVar =“myValue”变量;

我想在mybatis地图中使用它,例如,

select col1, col1, conversationScope.myVar as ScopeVar
from table1;

desired result

col1  col2  ScopeVar

xxxx  xxxx   myValue

yyyy  yyyy   myValue

...

1 个答案:

答案 0 :(得分:0)

MyBatis确实支持您需要的动态SQL。最大的诀窍是使用$ {variable}而不是#{variable}。请注意,它会让您容易受到SQL注入攻击。使用时#MyBatis使用PreparedStatements来避免SQL注入,然后

以示例为例,您有一个带方法的Mapper接口。

ComplexObject selectSomeObject(@Param("columnName") String columnName);

您的SQL地图可以在实际选择代码的一部分中使用该参数。

<select id="selectSomeObject" resultType="someObject"> 
    select t1.column as ${columnName}    
    from table1 t1
 </select>

如果您需要全局变量,请查看此问题。 MyBatis - defining a global parameter