去掉参数中第一个“,”

记录一下,前端传参中,传给我参数是"categoryIds: ,1731557494586241026,1731569816263311362,1731569855534579713,1731858335179223042,1731858366821052418"

但是后端,因为我的mybati是in查询,所以因为第一个是","。所以会导致系统报错。

下面提供三个解决方法:
方法一:

找前端,让前端改!!

方法二(修改mybatis):
XML 复制代码
<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,并在条件语句中使用它来构建查询条件。

方法三:
java 复制代码
    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 类型值,这个列表就可以用于查询数据了。
相关推荐
————A2 天前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
果果燕3 天前
实习笔记(五)面板 board 按钮状态解析任务
状态模式
程序员小八7773 天前
后端转全栈:前端思维转变(Vue 视角)
前端·vue.js·状态模式
梦想的旅途24 天前
基于企业微信API的微应用前端与后端架构设计
前端·状态模式·企业微信
烟漠河洛4 天前
海外仓库存周转慢的破局点在于重构多仓数据同步架构
重构·状态模式
许彰午4 天前
13-describe元数据输出
java·低代码·架构·状态模式
布莱克6054 天前
如何实现断点续传和分片上传?
网络·tcp/ip·状态模式
leoZ2314 天前
AI+前端提效- 06 AI辅助调试排错:前端报错、白屏、兼容问题极速定位
前端·人工智能·chatgpt·状态模式·超分辨率重建·openvino·dreamfusion
dsyuan0014 天前
ak-design 仿钉钉流程设计引擎图
钉钉·状态模式
国科安芯6 天前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座