閱讀131 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go svn更新項目時遇到被鎖住的問題
  下一篇:go 緩存淘汰算法係列之3——FIFO類