Mybatis學習筆記 3:Mybatis 多種條件查詢

EatherToo發表於2019-02-14

這篇文章基於上一篇文章的例子

完整程式碼在這

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("------------------------");
}
複製程式碼

執行結果:

Mybatis學習筆記 3:Mybatis 多種條件查詢

二、多條件查詢

多條件查詢就是構建查詢語句時跟上一個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("------------------------")
}
複製程式碼

執行結果:

Mybatis學習筆記 3:Mybatis 多種條件查詢

相關文章