在IbatiS的select中有兩個(gè)占位符 # 和 $ 我們先看一個(gè) 一個(gè)查詢語(yǔ)句: select * from user where Name = #userName#; 我們用#這個(gè)占位符可以查詢到 我們想要的結(jié)果,可是當(dāng)我們需要模糊查詢的時(shí)候該怎么辦呢? select * from user where Name = ‘%#userName#%’(錯(cuò)誤的寫法);如果我們這樣寫,程序在編譯的時(shí)候會(huì)報(bào)錯(cuò),因?yàn)?# 這個(gè)占位符前面還有別的 符號(hào),#這個(gè)占位符是不允許這樣寫的,這個(gè)時(shí)候我們就可以用 $ 這個(gè)占位符: select * from user where Name = ‘%$userName$%’(正確的模糊查詢寫法),這樣寫編譯器不會(huì)報(bào)錯(cuò),也能得到我們想要的結(jié)果。 歸根結(jié)底的原因就是 # 占位符會(huì)把我們的SQL 語(yǔ)句翻譯成 select * from user where Name = ? 這樣的語(yǔ)句,然后在填充參數(shù)。 $ 占位符會(huì)把我們的SQL語(yǔ)句 翻譯成 select * from user where Name = '想要查詢的東西' 這個(gè)樣標(biāo)準(zhǔn)的SQL語(yǔ)句 |
|
來(lái)自: 暖風(fēng)醉伊人 > 《javaweb》