2011-11-30 92 views
1

我有一個conversationScope.myVar =「myValue」變量;春季/ mybatis地圖範圍變量

我想用它的MyBatis地圖內如

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

desired result 

col1 col2 ScopeVar 

xxxx xxxx myValue 

yyyy yyyy myValue 

... 

回答

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

+0

太好了。非常感謝你!我正在使用內部值,而不是用戶提供的值 – user969743