JAVA开发常见小问题整合

在这里整理一下博主在日常开发过程中经常见到的一些小问题以及处理方式。

1:身份证工具类相关方法

1.1 身份证脱敏处理

在开发关于用户功能时,尤其是导出功能,我们经常会在导出的时候,对用户的身份证号脱敏处理。

DesensitizedUtil工具类已封装好脱敏处理,我们不需要在网上额外找方法进行封装。

我们可以直接调用idCardNum方法(不用考虑空指针问题,身份证号为空则返回空)。

比如:从第七位开始,截止到倒数第五位,隐藏这部分之间的信息
 DesensitizedUtil.idCardNum("314215749845134567",6,4)

结果如下:
在这里插入图片描述

2:字符串补零处理(此处是JAVA类的方法,并无引用StrUtil)

想要实现根据0001依次累加的效果(0002,0003,0010。。。。1000)这样的效果,那么我们可以使用String工具类:如下

 String.format("%04d", num);
 
 %0nd 的格式字符串实现补零的效果。
 %04d 用于格式化整数 num,其中 0 表示补零,4 表示输出的字符串长度,若num长度大于4位则不补零

3:springboot前后端分离,后端返回json字符串带斜杠问题处理

首先声明一个对应的JSONObject对象或者JSONArray数组,
返回前端时,将json字符串转换为对应的json信息即可


com.alibaba.fastjson.annotation.JSONField



@ApiModelProperty(value = "消息体")
private String messageInfo;

@ApiModelProperty(value = "消息体展示")
private JSONObject messageJson;


      eventList.stream().forEach(x->{
   
            x.setMessageJson(JSONObject.parseObject(x.getMessageInfo()));
        });

效果如下:
在这里插入图片描述

4:WebUploader 上传组件 -编辑回显自动上传问题(效果:已存在的只展示,新添加的自动上传)

编辑页面:设置文件自动上传的前提下,针对已存在数据库的文件只做回显处理,只有新选择的文件才做自动上传服务器处理。

回显的js业务代码 可查看资源(百度webupload上传组件-关于文件编辑回显的方法整合

前端展示处理:
在这里插入图片描述
后端返回处理:
因为文件存储到数据库的时候我们只是存储了文件名称,并没有存储访问路径,所以要返回两个集合
一个用来展示,一个用来存储数据库(在前端时的初始化)
在这里插入图片描述

5:mybatis 集合/数组传参

1:集合类型参数

mapper文件
查询方法
List<Model> selectList(List<String> checkStatusListParam);

对应sql的where条件

           <if test="checkStatusListParam!=null and checkStatusListParam.size()>0">
                and check_status in
                <foreach item="checkStatus" collection="checkStatusListParam" open="(" separator="," close=")">
                    #{checkStatus}
                </foreach>
            </if>

1.2:集合类型传参且判断是否为空

若是单独作为一个参数进行查询,且进行了非空判断,则需要加Param注解

	public BigDecimal selectWorkChangeMoneyByBorIdList(@Param("idList") List<Long> idList);

    <select id="selectWorkChangeMoneyByBorIdList" resultType="BigDecimal">
        select ifnull(sum(WK_MONEY),0)
        from 表A
        <where>
            <if test="idList!=null and idList.size()>0">
                and id in
                <foreach item="id " collection="idList" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
    </select>


2:数组类型参数

 mapper文件:删除方法
 int delete(@Param("monthTime") String monthTime, @Param("array")String[] deptArray);

 对应sql:
   <delete id="delete" parameterType="String">
        delete from  table
        where month=#{monthTime}
        <if test="array!=null and array.length>0">
            and id in
            <foreach 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博客胡

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值