在使用iBatis對MySQL進行模糊查詢時,我們可以使用like語句并以%作為通配符。
<select id="searchUsersByKeyword" resultType="User" parameterType="string">select * from users where name like '%${keyword}%' </select>
在上面的代碼中,我們定義了一個名為searchUsersByKeyword的iBatis語句來執行針對名稱(即name字段)的模糊查詢。該語句采用%通配符來表示任意字符,因此如果我們要查找名字包含“Tom”的用戶,我們只需要將"Tom"作為關鍵字傳遞給這個語句即可。
需要注意的是,在使用iBatis進行模糊查詢時,我們應該使用參數化查詢。參數化查詢可以有效地防止SQL注入攻擊。下面是一個關鍵字參數化查詢的示例:
<select id="searchUsersByKeyword" resultType="User" parameterType="string">select * from users where name like concat('%',#{keyword},'%') </select>
在這個例子中,我們使用concat()函數來連接通配符和關鍵字參數。#{keyword}會自動被解析為預編譯語句參數,從而有效地保護我們的應用程序免受SQL注入攻擊。