mybatis如何使用xml中的if-else/choose
最近需要使用 xml 文件來實現(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 文件中寫這個方法的具體實現(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 中 不要在這里進行加減乘除的運算,弄不好也有坑 </select>
到此這篇關(guān)于mybatis如何使用xml中的if-else/choose的文章就介紹到這了,更多相關(guān)mybatis使用xml if-else/choose內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)線上環(huán)境遠(yuǎn)程debug調(diào)試過程
本文介紹了在Docker容器中配置Tomcat和Spring Boot進行遠(yuǎn)程調(diào)試的方法,通過配置`CATALINA_OPTS`或`JPDA`參數(shù),可以在測試環(huán)境中啟動Tomcat或Spring Boot應(yīng)用的debug模式,然后在本地IDEA中設(shè)置斷點進行調(diào)試,從而更高效地定位和解決問題2025-02-02Java的靜態(tài)方法Arrays.asList()使用指南
Arrays.asList() 是一個 Java 的靜態(tài)方法,它可以把一個數(shù)組或者多個參數(shù)轉(zhuǎn)換成一個 List 集合,這個方法可以作為數(shù)組和集合之間的橋梁,方便我們使用集合的一些方法和特性,本文將介紹 Arrays.asList() 的語法、應(yīng)用場景、坑點和總結(jié)2023-09-09MybatisPlus BaseMapper 中的方法全部 Invalid bound statement (not f
這篇文章主要介紹了MybatisPlus BaseMapper 中的方法全部 Invalid bound statement (not found)的Error處理方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09Spring?Boot中@Validated注解不生效問題匯總大全
這篇文章主要給大家介紹了關(guān)于Spring?Boot中@Validated注解不生效問題匯總的相關(guān)資料,@Validated注解是Spring框架中的一個注解,用于在方法參數(shù)上添加參數(shù)校驗規(guī)則,需要的朋友可以參考下2023-07-07SpringBoot整合screw實現(xiàn)數(shù)據(jù)庫文檔自動生成的示例代碼
這篇文章主要介紹了SpringBoot整合screw實現(xiàn)數(shù)據(jù)庫文檔自動生成的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java畢業(yè)設(shè)計實戰(zhàn)之健身器材商城系統(tǒng)的實現(xiàn)
只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Jdbc+Servlet+Ajax+Fileupload+mysql實現(xiàn)健身器材商城系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-03-03淺談Java中浮點型數(shù)據(jù)保留兩位小數(shù)的四種方法
今天在進行開發(fā)的過程中遇到了一個小問題,是關(guān)于如何將double類型的數(shù)據(jù)保留兩位小數(shù)。具有一定的參考價值,本文就詳細(xì)的介紹一下2021-09-09Java調(diào)用基于Ollama本地大模型的實現(xiàn)
本文主要介紹了Java調(diào)用基于Ollama本地大模型的實現(xiàn),實現(xiàn)文本生成、問答、文本分類等功能,開發(fā)者可以輕松配置和調(diào)用模型,具有一定的參考價值,感興趣的可以了解一下2025-03-03