ibatis動態語句不同的寫法
所謂的不同寫法當然原理一樣,隻不過我覺得第二種更加清晰和原生一些。
寫法一:
<sql >
<dynamic prepend="WHERE">
<isNotEmpty prepend="and" property="stuNum">
<![CDATA[ num= #stuNum# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="stuName">
<![CDATA[ name like '%$stuName$%' ]]>
</isNotEmpty>
</dynamic>
</sql>
使用
<select resultMap="Student">
<include ref />
<include ref />
</select>
但是我覺得這樣寫太依賴ibatis了,比如說prepend這個屬性,用不好在拚裝sql語句的會麻煩。
我喜歡采用下麵的寫法。
寫法二
<sql >
where
<isNotEmpty property="stuNum">
<![CDATA[ num = #stuNum# and]]>
</isNotEmpty>
</sql>
用法
<select resultClass="Student">
<include ref />
<include ref />
<![CDATA[
name like '%x%'
]]>
</select>
看到了嗎?這樣很原生態,拚裝的時候很好想,不那麼依賴ibatis了。
最後更新:2017-04-02 16:47:50