在MyBatis中,我們可以使用"LIKE"關(guān)鍵字來(lái)進(jìn)行模糊查詢。本文將介紹如何在MyBatis中進(jìn)行模糊查詢操作,以及如何在XML映射文件和注解中實(shí)現(xiàn)模糊查詢。
1. 在XML映射文件中實(shí)現(xiàn)模糊查詢
在XML映射文件中,我們可以通過編寫SQL語(yǔ)句來(lái)實(shí)現(xiàn)模糊查詢。以下是一個(gè)簡(jiǎn)單的示例:
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')在這個(gè)示例中,我們定義了一個(gè)名為"findByName"的查詢方法,它接受一個(gè)字符串參數(shù)"name",并返回一個(gè)"User"實(shí)體對(duì)象。在SQL語(yǔ)句中,我們使用"LIKE"關(guān)鍵字和"CONCAT"函數(shù)來(lái)實(shí)現(xiàn)模糊查詢。"%"符號(hào)表示任意數(shù)量的字符。
2. 在注解中實(shí)現(xiàn)模糊查詢
除了在XML映射文件中使用SQL語(yǔ)句實(shí)現(xiàn)模糊查詢外,我們還可以在注解中直接編寫SQL語(yǔ)句。以下是一個(gè)簡(jiǎn)單的示例:
@Select("SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')")
List<User> findByName(@Param("name") String name);在這個(gè)示例中,我們使用了"@Select"注解來(lái)指定SQL語(yǔ)句。同樣,在SQL語(yǔ)句中,我們使用"LIKE"關(guān)鍵字和"CONCAT"函數(shù)來(lái)實(shí)現(xiàn)模糊查詢。
3. 結(jié)果處理
當(dāng)我們執(zhí)行模糊查詢后,MyBatis會(huì)將查詢結(jié)果封裝成一個(gè)集合(如List)返回給調(diào)用者。如果需要對(duì)查詢結(jié)果進(jìn)行分頁(yè)處理或排序等操作,可以在SQL語(yǔ)句中使用"LIMIT"和"ORDER BY"子句。例如:
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
ORDER BY create_time DESC
LIMIT #{offset}, #{pageSize}在這個(gè)示例中,我們?cè)赟QL語(yǔ)句中添加了"ORDER BY create_time DESC"和"LIMIT #{offset}, #{pageSize}"子句,用于對(duì)查詢結(jié)果進(jìn)行分頁(yè)處理和按創(chuàng)建時(shí)間降序排序。注意,這里的"BaseResultMap"是自定義的一個(gè)結(jié)果映射配置文件,用于將查詢結(jié)果映射到實(shí)體類。