mybatis如何使用xml中的if-else/choose
最近需要使用 xml 文件來實(shí)現(xiàn)一些增刪改查,此文對 其中的 if-else 加以說明
背景:
有一個引用類,假設(shè)叫 Student
public class Student {
private String name;
private String address;
private Integer yn;
}現(xiàn)在我們查詢條件也被封裝成一個引用類,例如:
public class StudentQueryModel {
private String name;
private String address;
private Integer pageIndex;
private Integer pageSize;
private Integer beginIndex;
}那么使用 xml 怎么來使用和接收呢?
首先肯定是在 mapper 里面有一個方法
List<Student> getStudentByCondition(@Param("s") StudentQueryModel model);然后在 xml 文件中寫這個方法的具體實(shí)現(xiàn)
<select id="getStudentByCondition"
parameterType="入?yún)㈩愋停敲次覀冞@里就應(yīng)該是 com.xxx.xxx.StudentQueryModel "
resultType="返回值類型,注意,我們雖然查詢的是一些數(shù)據(jù),也就是List,但是這里不能寫 java.util.List 而是寫 com.xxx..xxx.Student ,如果只想查一條數(shù)據(jù),依舊是 com.xxx..xxx.Student ">
select * from t_student
WHERE
yn = 1
注意,這里最好不要用 <if></if> 標(biāo)簽,寫不好就是坑很多,用 choose也是一樣的效果
<choose>
<when test=s.name != null and s.name != ''">
and t_student.name = #{s.name}
</when>
</choose>
<choose>
<when test="s.address != null and s.address != ''">
and t_student.address = #{s.address}
</when>
</choose>
limit #{s.beginIndex}, #{s.pageSize};//這里最好是在外面算出來,在調(diào)用該方法之前就將這兩個值算好放到 model 中 不要在這里進(jìn)行加減乘除的運(yùn)算,弄不好也有坑
</select>到此這篇關(guān)于mybatis如何使用xml中的if-else/choose的文章就介紹到這了,更多相關(guān)mybatis使用xml if-else/choose內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中創(chuàng)建寫入文件的6種方式詳解與源碼實(shí)例
這篇文章主要介紹了java中創(chuàng)建寫入文件的6種方式詳解與源碼實(shí)例,Files.newBufferedWriter(Java 8),Files.write(Java 7 推薦),PrintWriter,File.createNewFile,FileOutputStream.write(byte[] b) 管道流,需要的朋友可以參考下2022-12-12
Spring注解之@FunctionalInterface詳解(函數(shù)式接口)
@FunctionalInterface是Java8注解,標(biāo)識僅含一個抽象方法的函數(shù)式接口,支持Lambda,編譯檢查確保符合定義,提升可讀性,非強(qiáng)制,繼承方法需注意計(jì)數(shù),Object方法不計(jì)入2025-09-09
Springboot敏感字段脫敏的實(shí)現(xiàn)思路
這篇文章主要介紹了Springboot敏感字段脫敏的實(shí)現(xiàn)思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Spring Security添加二次認(rèn)證的項(xiàng)目實(shí)踐
在用戶自動登錄后,可以通過對密碼進(jìn)行二次校驗(yàn)進(jìn)而確保用戶的真實(shí)性,本文就來介紹一下Spring Security添加二次認(rèn)證的項(xiàng)目實(shí)踐,具有一定的參考價值,感興趣的可以了解一下2023-12-12
IntelliJ IDEA創(chuàng)建普通的Java 項(xiàng)目及創(chuàng)建 Java 文件并運(yùn)行的教程
這篇文章主要介紹了IntelliJ IDEA創(chuàng)建普通的Java 項(xiàng)目及創(chuàng)建 Java 文件并運(yùn)行的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
比作MVC的話,控制器部分采用Servlet來實(shí)現(xiàn),模型部分采用JavaBean來實(shí)現(xiàn),而大部分的視圖采用Jsp頁面來實(shí)現(xiàn),接下來我們就來詳細(xì)看看如何用Servlet+JavaBean+JSP打造Java Web注冊與登錄功能2016-05-05

