2013-03-15 1068 views
7

MyBatisの動的SQLで空の文字列をチェックするにはどうすればよいですか?私はdocumentaitonの下のコードを見つけるが、私は空の文字列ではなく、nullをチェックしたい。クエリで、それはようなものになるだろうので、あなたは、空の文字列と比較するために!= ''を使用することができますMyBatisのでMyBatisで空の文字列をチェックする方法は?

<select id="findActiveBlogWithTitleLike" parameterType="Blog" resultType="Blog"> 
    SELECT * FROM BLOG WHERE state = ‘ACTIVE’ 
    <if test="title != null"> 
     AND title like #{title} 
    </if> 
</select> 

答えて

11

<select id="findActiveBlogWithTitleLike" parameterType="Blog" resultType="Blog"> 
    SELECT * FROM BLOG WHERE state = ‘ACTIVE’ 
    <if test="title != null and title != ''"> 
    AND title like #{title} 
    </if> 
</select> 
+0

あなたは歓迎されている –

+0

作業、ありがとうございました。 – partlov

+0

これはいかがですか? "title.length()> 0"。 –

0

Dont'tだけでなく、英語を話します。お待ちいただいてどうもありがとうございます。

これは関数のXMLファイルです。

<mapper namespace="org.jacknie.mybatis.Functions"> 
    <sql id="isBlank"> 
    <bind name="isBlank" value=":[@[email protected](#this)]" /> 
    </sql> 
    <sql id="sysout"> 
    <bind name="sysout" value=":[@[email protected](#this)]" /> 
    </sql> 
</mapper> 

これはマッパーXMLファイルです。このヒントをどのように考えるか

<mapper namespace="org.jacknie.test.TestMapper"> 
    <select id="selectTest" resultType="_int"> 
    <include refid="org.jacknie.mybatis.Functions.isBlank" /> 
    <include refid="org.jacknie.mybatis.Functions.sysout" /> 
    SELECT '1' FROM DUAL 
    <if test="#fn = isBlank, not(#fn(map.name))"> 
     <bind name="forLogging" value="#fn = sysout, #fn('Hello' + map.name)" /> 
    </if> 
    </select> 
</mapper> 

...

enter link description here

関連する問題