去掉參數中第一個“,”

? ? ? ?記錄一下,前端傳參中,傳給我參數是“categoryIds: ,1731557494586241026,1731569816263311362,1731569855534579713,1731858335179223042,1731858366821052418”


? ? ? 但是后端,因為我的mybati是in查詢,所以因為第一個是“,”。所以會導致系統報錯。
?

下面提供三個解決方法:
方法一:

找前端,讓前端改!!

方法二(修改mybatis):
<if test="pd.categoryIds != null and pd.categoryIds.trim() != ''"><choose><when test="pd.categoryIds.startsWith(',')"><bind name="categoryIds" value="pd.categoryIds.substring(1)" /></when><otherwise><bind name="categoryIds" value="pd.categoryIds" /></otherwise></choose>AND a.category_id IN (${categoryIds})
</if>

? ? ? 在這個改進后的條件語句中,我們首先使用?trim()?方法去除?categoryIds?字符串兩端的空格。然后使用?startsWith(',')?方法判斷是否以逗號開頭,如果是則使用?substring(1)?方法去除開頭的逗號。最后,我們將處理后的?categoryIds?值賦給一個新的變量?categoryIds,并在條件語句中使用它來構建查詢條件。

方法三:
    if (categoryIds.startsWith(",")) {categoryIds = categoryIds.substring(1);}String[] categoryIdArr = categoryIds.split(",");List<Long> categoryIdList = new ArrayList<>();for (String categoryId : categoryIdArr) {categoryIdList.add(Long.parseLong(categoryId.trim()));}
  1. 如果?categoryIds?字符串以逗號開頭,那么使用?substring(1)?方法去掉開頭的逗號。這是因為在查詢條件中,逗號前面不應該有任何字符。
  2. 使用?split(",")?方法將?categoryIds?字符串按逗號分隔成多個字符串,然后賦值給一個名為?categoryIdArr?的字符串數組。這個數組包含了多個類別 ID 字符串。
  3. 創建一個名為?categoryIdList?的空列表,用于存儲將要查詢的類別 ID。
  4. 遍歷?categoryIdArr?數組中的每個字符串,在遍歷過程中,使用?Long.parseLong()?方法將字符串解析成?Long?類型,并且使用?trim()?方法去除字符串兩端的空格。然后,將解析后的?Long?類型值添加到?categoryIdList?列表中。
  5. 最后,當循環遍歷完成后,categoryIdList?列表中包含了多個類別 ID 的?Long?類型值,這個列表就可以用于查詢數據了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RabbitMQ安裝在Linux系統詳細教程

安裝教程&#xff1a; 1.首先將下載好的文件上傳到服務器&#xff0c;拉到opt文件夾中(可以用xftp&#xff09; 2.輸入命令&#xff1a; cd /opt 3.安裝erlang rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm rpm -ivh&#xff08;復制配置文件的名字&#xff09; 4.在Rab…

sap增強

四代增強 2種顯示增強1種隱式增強 隱式增強 光標放在增強點或其中的代碼點擊修改即可修改代碼 顯示增強 1.ENHANCEMENT-POINT 在代碼修改界面選擇空行 光標所在位置 可以創建多個增強實施且激活后都會執行. 2.ENHANCEMENT-SECTION 1,選中程序中空行 2.編輯->創建選項 …

回顧2023 亞馬遜云科技 re_Invent,創新AI,一路同行

作為全球云計算龍頭企業的亞馬遜云科技于2023年11月27日至12月1日在美國拉斯維加斯舉辦了2023 亞馬遜云科技 re:Invent&#xff0c;從2012年開始舉辦的亞馬遜云科技 re:Invent 全球大會,到現如今2023 亞馬遜云科技 re:Invent&#xff0c;回顧歷屆re:Invent大會&#xff0c;亞馬…

Spring 動態代理時是如何解決循環依賴的?為什么要使用三級緩存?

首先&#xff0c;我將簡單介紹一下Spring框架中的動態代理和循環依賴問題。 動態代理與循環依賴 1. 動態代理 在Spring框架中&#xff0c;動態代理是一種常用的技術&#xff0c;用于實現AOP&#xff08;面向切面編程&#xff09;。動態代理允許Spring在運行時為目標對象創建…

C++『異常』

?個人主頁&#xff1a; 北 海 &#x1f389;所屬專欄&#xff1a; C修行之路 &#x1f383;操作環境&#xff1a; Visual Studio 2022 版本 17.6.5 文章目錄 &#x1f307;前言&#x1f3d9;?正文1.異常基本概念1.1.C語言異常處理方式1.2.C異常處理方式 2.異常的使用2.1.異常…

在線網頁生成工具GrapesJS

項目地址 https://github.com/GrapesJS/grapesjshttps://github.com/GrapesJS/grapesjs 項目簡述 這是一個基于node.js的在線網頁生成項目&#xff0c;對簡化開發有很大的幫助。 主要使用的語言如下&#xff1a; 編輯頁面如下&#xff1a; 使用也很簡潔 具體可以看下項目。…

使用c++編程語言,將字符串中的數字全部替換成字符串:number

給定一個字符串 s&#xff0c;它包含小寫字母和數字字符&#xff0c;請編寫一個函數&#xff0c;將字符串中的字母字符保持不變&#xff0c;而將每個數字字符替換為number。 樣例輸入&#xff1a;a1b2c3 樣例輸出&#xff1a;anumberbnumbercnumber 代碼如下&#xff1a; #incl…

12. MySQL 鎖機制

目錄 概述 MylSAM引擎 InnoDB引擎 概述 鎖是計算機協調多個進程或線程并發訪問某一資源的機制&#xff08;避免爭搶&#xff09;。在數據庫中&#xff0c;除傳統的計算資源(如CPU、RAM、I/O等&#xff09;的爭用以外&#xff0c;數據也是一種供許多用戶共享的資如何保證數據…

Pytest中使用Fixture替換Unittest的Setupclass及Pytest使用裝飾器應用參數化

1 類里使用Fixture Pytest中夾具&#xff08;Fixture&#xff09;有幾種生命周期&#xff1a;function->model->class->session->packages&#xff0c;其中默認為function。 import pytest from Common.logger import Log from Common.Operator import * fro…

C#中的Attributes特性創建和結合反射應用舉例

C#中的特性入門學習 Attributes官方介紹概述 Attributes provide a powerful method of associating metadata, or declarative information, with code (assemblies, types, methods, properties, and so forth). After an attribute is associated with a program entity, …

深入理解Vue.js中的this:解析this關鍵字及其使用場景

在Vue.js中&#xff0c;this 和 that 可能是指向不同對象的兩個變量&#xff0c;或者是在代碼中使用時的錯誤。 this&#xff1a; 在Vue組件中&#xff0c;this 指向當前組件的實例。可以通過 this 訪問組件的屬性和方法。 例如&#xff0c;在Vue組件的 data 屬性中定義了一…

2023年第十屆GIAC全球互聯網架構大會-核心PPT資料下載

一、峰會簡介 談到一個應用&#xff0c;我們首先考慮的是運行這個應用所需要的系統資源。其次&#xff0c;是關于應用自身的架構模式。最后&#xff0c;還需要從軟件工程的不同角度來考慮應用的設計、開發、部署、運維等。架構設計對應用有著深遠的影響&#xff0c;它的好壞決…

Leetcode659. 分割數組為連續子序列

Every day a Leetcode 題目來源&#xff1a;659. 分割數組為連續子序列 解法1&#xff1a;哈希 貪心 定義兩個哈希表&#xff1a; numsCount&#xff1a;統計數組 nums 中各元素出現次數。tailCount&#xff1a;存儲以數字 i 結尾的且符合題意的連續子序列個數。 算法&a…

極兔單號查詢,極兔快遞物流查詢,一鍵篩選出退回件

批量查詢極兔快遞單號的物流信息&#xff0c;一鍵篩選出其中的退回件。 所需工具&#xff1a; 一個【快遞批量查詢高手】軟件 極兔快遞單號若干 操作步驟&#xff1a; 步驟1&#xff1a;運行【快遞批量查詢高手】軟件&#xff0c;并登錄 步驟2&#xff1a;點擊主界面左上角的…

【Bootloader學習理解----跳轉優化異常】

筆者接著來介紹一下Bootloader的跳轉代碼以及優化 1、跳轉代碼理解 跳轉代碼可能要涉及到芯片架構的知識,要跳轉到對應的位置&#xff0c;還要設置相關的SP 堆棧指針&#xff0c;具體可以參考筆者這篇文章BootLoader的理解與實現。 STM32的跳轉代碼如下所示&#xff1a; u32 …

ClickHouse為何如此之快

針對ClickHose為什么很快的問題&#xff0c;基于對ClickHouse的基礎概念之上&#xff0c;一般會回答是因為是列式存儲數據庫&#xff0c;同時也會說是使用了向量化引擎&#xff0c;所以快。上面兩方面的解釋也都能夠站得住腳&#xff0c;但是依然不能夠解釋真正核心的原因。因為…

AI:101-基于深度學習的航空影像中建筑物識別

?? 本文選自專欄:人工智能領域200例教程專欄 從基礎到實踐,深入學習。無論你是初學者還是經驗豐富的老手,對于本專欄案例和項目實踐都有參考學習意義。 ??? 每一個案例都附帶有在本地跑過的核心代碼,詳細講解供大家學習,希望可以幫到大家。歡迎訂閱支持,正在不斷更新…

2023_刷題_二叉樹

文章目錄 書leixingleixing 書 leixing leixing

基于以太坊的智能合約開發Solidity(基礎篇)

參考教程&#xff1a;基于以太坊的智能合約開發教程【Solidity】_嗶哩嗶哩_bilibili 1、第一個程序——Helloworld&#xff1a; //聲明版本號&#xff08;程序中的版本號要和編譯器版本號一致&#xff09; pragma solidity ^0.5.17; //合約 contract HelloWorld {//合約屬性變…

Python軸承故障診斷 (四)基于EMD-CNN的故障分類

目錄 前言 1 經驗模態分解EMD的Python示例 2 軸承故障數據的預處理 2.1 導入數據 2.2 制作數據集和對應標簽 2.3 故障數據的EMD分解可視化 2.4 故障數據的EMD分解預處理 3 基于EMD-CNN的軸承故障診斷分類 3.1 訓練數據、測試數據分組&#xff0c;數據分batch 3.2 定義…