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)文章
Spring?Boot/Spring?MVC核心注解的作用詳解
本文詳細(xì)介紹了SpringBoot和SpringMVC中最常用的15個(gè)核心注解,涵蓋了請(qǐng)求路由映射、參數(shù)綁定、RESTful?API、組件管理、數(shù)據(jù)校驗(yàn)等內(nèi)容,通過豐富的代碼示例和圖表幫助開發(fā)者全面掌握這些注解,提升開發(fā)效率和代碼質(zhì)量,感興趣的朋友跟隨小編一起看看吧2025-11-11
關(guān)于Java限流功能的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了關(guān)于Java限流功能的簡(jiǎn)單實(shí)現(xiàn),在Java中,限流是一種常見的技術(shù)手段,用于控制系統(tǒng)的訪問速率,以保護(hù)系統(tǒng)免受過載和濫用,需要的朋友可以參考下2023-07-07
IntelliJ IDEA 2020常用配置設(shè)置大全(方便干活)
這篇文章主要介紹了IntelliJ IDEA 2020常用配置設(shè)置大全(方便干活),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Java BufferedReader相關(guān)源碼實(shí)例分析
這篇文章主要介紹了Java BufferedReader相關(guān)源碼實(shí)例分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
java多次嵌套循環(huán)查詢數(shù)據(jù)庫導(dǎo)致代碼中數(shù)據(jù)處理慢的解決
這篇文章主要介紹了java多次嵌套循環(huán)查詢數(shù)據(jù)庫導(dǎo)致代碼中數(shù)據(jù)處理慢的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

