需求:判斷數據庫中的權限並拼接相關的條件
關鍵字:mybatis <if>標籤 <foreach>標籤 標籤test==判斷
因爲不熟悉Mybatis的一些用法 昨天花了一下午時間去做這個小小的點,希望我的問題點能夠幫助那些依舊在爲夢想拼搏的人。
已改正確的寫法
這裏有兩個知識點:
1.<if>標籤 test判斷兩個String類型的字段是否相等
可以是<if test=" 傳過來的字段 ==‘固定的字段’.toString"></if>或者<if test='傳過來的字段==“固定的字段”'></if>
參考:https://www.cnblogs.com/westward/p/6910856.html
2.foreach循環
item直接就代表了你循環中list 【10101,10102】中的值,直接取就能夠判斷,如上述中的圖片
這裏說下我的遇到的問題:
第一個想法是將sql後臺拼接進來傳入數值 sql="and sqrlx IS NOT NULL";理想的情況是and sqrlx IS NOT NULL直接拼接到sql條件的的後面,但是會給你自動加兩個''給你sql闊起來傳過去。即'and sqrlx IS NOT NULL' 這時候就發生錯誤了(可以試試將條件''起來)。
第二個想法是xml文件中判斷直接寫and sqrlx IS NOT NULL 這樣應該沒啥問題了,但是foreach循環的時候我記得是要#{item} 然後寫成<if test="#{item}=='10101'.toString"></if>跑起項目一直報錯,後來寫成<if test="item=='10101'.toString"></if>可以了。
總結:還是自己的基礎不紮實 贈予那些掉進坑裏的人。