1. 程式人生 > >iBatis 中 Like 的寫法實現模糊查詢

iBatis 中 Like 的寫法實現模糊查詢

也就是如上的 like 語義在 person.xml中應該怎麼表述呢?我曾經是想當然的嘗試把
(name like #name#) 寫成    (name like '%#name#%')    或 (name like %#name#%) ,都沒法通過,分別報錯
java.sql.SQLException: Invalid argument in JDBC call: parameter index out of range: 1

java.sql.SQLException: Unexpected token: % in statement [     select id......
那麼正確的寫法是什麼呢?在網上找到一個解答方法有兩種:
1. 是把上面 (name like '%#name#%') 的 # 換成 $, 也就是 (name like '%$name$%')
2. 是用 || 連線字串的方式,寫成 (name like '%' || #name# || '%')
但卻不能寫成 (name like '%'||$name$||'%') ,不能又要出錯
java.sql.SQLException: Column not found: UNMI in statement [select id......
總結一下,在 iBatis 中用 like 的模糊查詢的配置如下(兩種方式)