91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iBATIS如何使用$和#

發布時間:2021-11-03 13:39:09 來源:億速云 閱讀:254 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“iBATIS如何使用$和#”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“iBATIS如何使用$和#”這篇文章吧。

我們在使用iBATIS時會經常用到#這個符號。

比如:

sql 代碼

select * from member where id =#id#

然后,我們會在程序中給id這個變量傳遞一個值,iBATIS會自動將#id#轉成我們傳遞的內容。

但是我最近碰到一個奇怪的問題。我在批量刪除或修改的時候,居然SQL失效了。

SQL如下:

sql 代碼

update user set flag=#flag# where id in (#id#)      delete from user where id in (#id#)

傳遞的id為1,2,3。但是數據卻沒有任何的修改。

后來查找了半天,原來原因就是這個#的問題。因為iBATIS默認會把“#”中間的變量作為字符串來處理。這樣,就會出現這樣的SQL


sql 代碼

update user set flag='1' where id in ('1,2,3')          delete from user where id in ('1,2,3')

這樣的SQL數據庫當然是不會執行的。那我們只有繞開iBATIS了嗎?

其實不用,iBATIS其實還提供了另外一種方式,那就是使用$來傳遞值。你使用$將你的變量括起來,iBATIS不會給這個變量做任何的處理,直接生成你要的SQL

SQL代碼

update user set flag=$flag$ where id in ($id$)      update user set flag=1  where id in (1,2,3)      delete from user where id in ($id$)   delete from user where id in (1,2,3)

還可以用ibatis的iterate解決:

SQL:

﹤select id="test" parameterClass="java.util.List" resultClass="test.Roadline"﹥          select * from SYS_ROAD_LINE_INFO where ROAD_LINE_NO in           ﹤iterate open="(" close=")" conjunction=","﹥              #value[]#          ﹤/iterate﹥      ﹤/select﹥
List list = new ArrayList();      list.add("aaa");      list.add("bbb");                        List rsList = sqlMap.queryForList("roadline.test", list);

生成的SQL:

select * from SYS_ROAD_LINE_INFO where ROAD_LINE_NO in (?,?)

$中間的變量就是直接替換成值的

#會根據變量的類型來進行替換

比如articleTitle的類型是string, 值是"標題"的時候

$articleTitle$ = 標題

#articleTitle# = '標題'

如果一個字段的名字不規范帶有#,那么在﹤select ...﹥ select name# from reader where id=#id#...﹤/select﹥語句中會報錯,我看過有人問過這個問題,說是name####但是還是不能解決無法對帶#的字段的查詢。 解決辦法肯定是有的。比如,你可以把這個字段當做一個參數來傳遞給ibatis。然后用$$把這個變量括起來。

以上是“iBATIS如何使用$和#”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰溪市| 丰城市| 朝阳市| 兰西县| 吴桥县| 前郭尔| 淄博市| 库尔勒市| 太康县| 承德市| 汉川市| 泽普县| 兰溪市| 潍坊市| 嵊泗县| 杨浦区| 和顺县| 莆田市| 河南省| 闽清县| 庐江县| 西乌珠穆沁旗| 西林县| 邵东县| 阿拉善右旗| 南安市| 中超| 天等县| 柳林县| 麻阳| 巴林左旗| 聂拉木县| 新安县| 朝阳区| 常州市| 瑞丽市| 古交市| 方城县| 施秉县| 汉阴县| 彭阳县|