MybatisPlus操作符和運(yùn)算值詳解
好久沒有更新了,這次更新一個(gè)當(dāng)前端需要對(duì)運(yùn)算符和運(yùn)算值都需要前端傳遞給后端,動(dòng)態(tài)拼接運(yùn)算條件時(shí)的處理方法。
1、踩雷
查詢年齡 >=20,其中>=前端下拉框選擇,20值前端下拉框選擇
1)用戶表:
CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主鍵', `name` varchar(12) COMMENT '用戶名稱', `hobby` varchar(12) DEFAULT NULL COMMENT '愛好', `age` int(11) DEFAULT NULL COMMENT '用戶年齡', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用戶表';
2)定義VO:
import lombok.Data; @Data public class UserVO extends User { /** * 操作運(yùn)算符:>=/<=/= */ private String operateStr; }
3)Mapper內(nèi)容
<select id="selectUsers" resultType="org.springboot.xg.vo.UserVO"> select * from user <where> <if test="userVO.operateStr!= null and userVO.operateStr != '' and userVO.age!= null"> and avg_delay ${userVO.operateStr} #{userVO.age} </if> </where> </select>
這樣寫雖然接受參數(shù)沒有問題,但是在進(jìn)入Mapper層查詢時(shí)出報(bào)錯(cuò),不能識(shí)別符號(hào)。
2、調(diào)整
1)定義枚舉
package org.springboot.xg.enums; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public enum OperateEnum { // 大于等于 GREATER_THAN_OR_EQUAL_TO(1, ">="), // 等于 BE_EQUAL_TO(2, "="), // 小于等于 LESS_THAN_OR_EQUAL_TO(3, "<="); /** * 操作符對(duì)應(yīng)整數(shù)值 */ private final Integer operateIntValue; /** * 條件 */ private final String condition; /** * 根據(jù)值獲取條件 * * @param value 值 * @return 條件 */ public static String getConditionByIntValue(Integer value) { for (OperateEnum item : OperateEnum.values()) { if (item.getOperateIntValue().equals(value)) { return item.getCondition(); } } return null; } }
到此這篇關(guān)于MybatisPlus操作符和運(yùn)算值的文章就介紹到這了,更多相關(guān)MybatisPlus運(yùn)算值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)連接mysql數(shù)據(jù)庫(kù)單元測(cè)試查詢數(shù)據(jù)的實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava實(shí)現(xiàn)連接mysql數(shù)據(jù)庫(kù)單元測(cè)試查詢數(shù)據(jù)的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖
這篇文章主要介紹了淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07區(qū)塊鏈常用數(shù)據(jù)庫(kù)leveldb用java來實(shí)現(xiàn)常規(guī)操作的方法
這篇文章主要介紹了區(qū)塊鏈常用數(shù)據(jù)庫(kù)leveldb用java來實(shí)現(xiàn)常規(guī)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02SpringMvc自動(dòng)裝箱及GET請(qǐng)求參數(shù)原理解析
這篇文章主要介紹了SpringMvc自動(dòng)裝箱及GET請(qǐng)求參數(shù)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java8新日期時(shí)間API的20個(gè)使用示例
這篇文章主要介紹了Java8新日期時(shí)間API的20個(gè)使用示例,為了學(xué)習(xí)Java 8的這個(gè)新庫(kù),這里我創(chuàng)建了20個(gè)以任務(wù)為導(dǎo)向的例子,需要的朋友可以參考下2015-03-03Java與Python之間使用jython工具類實(shí)現(xiàn)數(shù)據(jù)交互
今天小編就為大家分享一篇關(guān)于Java與Python之間使用jython工具類實(shí)現(xiàn)數(shù)據(jù)交互,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03微信、支付寶二碼合一掃碼支付實(shí)現(xiàn)思路(java)
這篇文章主要為大家詳細(xì)介紹了微信、支付寶二碼合一掃碼支付實(shí)現(xiàn)思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08