這篇文章基於上一篇文章的例子
Mybatis 多種條件查詢和簡單查詢差別不是很大,更改xml對映檔案就可以了。
一、模糊查詢
模糊查詢使用like,在配置檔案中新建一個select標籤,根據Sql語法規則構建好查詢語句。
<select id="likeSearch" parameterType="String" resultType="User">
select * from user where user_name like concat('%',#{0},'%')
</select>
複製程式碼
在這裡要注意,要查詢的子串和正規表示式之間的連線要使用concat函式連線,否則會報錯。
測試程式碼:
List<User> lu = session.selectList("likeSearch", "d");
for (User u : lu) {
System.out.println(u.getUser_name());
System.out.println(u.getUser_id());
System.out.println(u.getUser_phone());
System.out.println("------------------------");
}
複製程式碼
執行結果:
二、多條件查詢
多條件查詢就是構建查詢語句時跟上一個and就可以了
<select id="multiSearch" parameterType="User" resultType="User">
select * from user where user_name like concat('%', #{user_name}, '%') and user_id like concat('%', #{user_id}, '%')
</select>
複製程式碼
在這裡傳遞引數給Mybatis時引數型別可以寫User型別,或者使用map型別
測試程式碼:
User u2 = new User();
u2.setUser_name("v");
u2.setUser_id("1");
List<User> lu = session.selectList("multiSearch", u2);
for (User u : lu) {
System.out.println(u.getUser_name());
System.out.println(u.getUser_id());
System.out.println(u.getUser_phone());
System.out.println("------------------------")
}
複製程式碼
執行結果: