包罗万象y

1.判断数据为不为空

CollectionUtils.isEmpty(list)
导入包 import org.springframework.util.CollectionUtils;

StringUtils.isBlank(name)
导入包 import org.apache.commons.lang3.StringUtils;

2.场景 一个类两个字段部分数据重复

  for (int i = 0; i < supplyChainCommoditySubclassAddReq.size(); i++) {
                    SupplyChainCommoditySubclassAddReq chainCommoditySubclassAddReq =  supplyChainCommoditySubclassAddReq.get(i);
                    String relatedParenIds=chainCommoditySubclassAddReq.getRelatedParentIds();
                    Long relatedId=chainCommoditySubclassAddReq.getRelatedCid();
                    String relatedCid = Long.toString(relatedId);
                    String relatedParentIds = relatedParenIds.replace(relatedCid, "");
                    chainCommoditySubclassAddReq.setRelatedParentIds(relatedParentIds);
                }

3.List数据分页

 List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        list.add(8);
        list.add(9);
        list.add(11);
        list.add(12);
        list.add(13);
        list.add(14);
        list.add(15);
        int pageNo=(pageNo-1)*pageSize;   //每页的起始索引
        int pageSize=5; // 每页记录数
        Integer sum = list.size(); //记录总数
        if (pageNo+pageSize > sum) {
            list = list.subList(pageNo,sum);
        }else {
            list = list.subList(pageNo,pageNo+pageSize);
        }
        System.out.println( list.size());

4.@SneakyThrows 处理异常

5.测试代码运行时间

long startTime = System.currentTimeMillis(); //获取开始时间

long endTime = System.currentTimeMillis(); //获取结束时间

System.out.println("程序运行时间:" + (endTime - startTime) + "ms")

6.图片url读取 当url错误时解决方案

  @Override
    public String getBase64ByImgUrl(String imgUrl){
        getUrlJude(imgUrl);
        try {
            URL urlConet = new URL(imgUrl);
            URLConnection con = urlConet.openConnection();
            InputStream in = con.getInputStream();
            byte[] buffer = new byte[4 * 1024];
            int n = 0;
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            while ((n = in.read(buffer)) != -1) {
                out.write(buffer, 0, n);
            }
            byte[] bs = out.toByteArray();
            String s = Base64.getEncoder().encodeToString(bs);
            String file=s.substring(0,4);
            if (!file.equals("/9j/")){
                throw new GlobalException(EnumStatusCode.SAVE_FILE_URL_MISTAKE);
            }
            return s;
        } catch (IOException e) {
            throw new GlobalException(EnumStatusCode.SAVE_FILE_URL_MISTAKE);
        }
    }
/**
     * 读取url 并判断大小
     */
    private void getUrlJude(String urlString){
        int length=0;
        URL url;
        try {
            url = new URL(urlString);
            HttpURLConnection urlcon=(HttpURLConnection)url.openConnection();//打开连接
            //根据响应获取文件大小
            length=urlcon.getContentLength();
            urlcon.disconnect();//关闭连接
        }catch(Exception e){
            throw new GlobalException(EnumStatusCode.SAVE_FILE_URL_MISTAKE);
        }
        long lengths = (long)length;
        if (lengths < 1024) {

        } else if (lengths < 1048576) {

        } else if (lengths < 1073741824) {
            double data3=(double) lengths / 1048576;
            BigDecimal data1 = new BigDecimal("3");
            BigDecimal data2 = new BigDecimal(data3);
            if (data1.compareTo(data2) < 0) {
                throw new GlobalException(EnumStatusCode.SAVE_FILE_URL_SIZE_OUT);
            }
        }else{
            throw new GlobalException(EnumStatusCode.SAVE_FILE_URL_SIZE_OUT);
        }
    }

7.转换问题

(1)KB MB GB转换

public static void main(String[] args) {
        long size=2753L;
        DecimalFormat df = new DecimalFormat("#.00");
        String fileSizeString = "";
        if (size < 1024) {
            fileSizeString = df.format((double) size) + "KB";
        } else if (size < 1048576) {
            fileSizeString = df.format((double) size / 1024) + "MB";
        } else if (size < 1073741824) {
            fileSizeString = df.format((double) size / 1048576) + "GB";
        } 
        System.out.println(fileSizeString);
    }

(2)String转list

String strs="1,2,3";
String[] str= strs.split(',');
List<String> list = Arrays.asList(type); 

8.年月日的操作

(1)年月日的获取

 		Calendar calendar = Calendar.getInstance();
        int monthNow = calendar.get(Calendar.MONTH) + 1;
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        int dayNow = calendar.get(Calendar.DATE);
        int yearNow = calendar.get(Calendar.YEAR);
        // 获取当前小时
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        // 获取当前分钟
        int minute = calendar.get(Calendar.MINUTE);

(2)年月日的转换

 	    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date date = simpleDateFormat.parse("2021-09-10 14:48:06");
        System.out.println(date); //Fri Sep 10 14:48:06 CST 2021
        System.out.println(" (int) (date.getTime() / 1000) = " +  (int) (date.getTime() / 1000));  //时间戳 秒级别

9.mysql

(1)设置表字段

【1】设置表-字段-为空:

ALTER TABLE 表名称 MODIFY 字段名称 数据类型 DEFAULT NULL;

【2】设置表-字段-不为空:

LTER TABLE 表 ALTER COLUMN 字段名 数据类型 NOT NULL;

【3】修改表-字段-长度备注:

ALTER TABLE file_export_log MODIFY COLUMN capital_type VARCHAR(255) COMMENT ‘资金类型(交易明细)’;

(2)FIND_IN_SET (查询某个字段里是否包含id)

查询某个字段里是否包含id

   SELECT
	    business_name AS businessName,
	    business_id AS businessId,
	    enterprise_ids AS enterpriseIds
    FROM
    	business
    WHERE
    	FIND_IN_SET(#{enterpriseIds},enterprise_ids)

(3)区分in和exists

select * from 表A 
	where id in (select id from 表B)

上面sql语句相当于

select * from 表A 
where exists(select * from 表B where 表B.id=A.id)

区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询。所以IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

10.string切割

String str = “abc,ac,ab,0”;
String[] strs=str.split(“,”);
for(int i=0,len=strs.length;i<len;i++){
System.out.print(strs[i].toString()+" ");
}

11.两个list《map》去重相同值

List<UserCollectionListResponseVo> v1 = new ArrayList<>();
        List<UserCollectionListResponseVo> v2 = new ArrayList<>();
        UserCollectionListResponseVo vv = new UserCollectionListResponseVo();
        vv.setGoodId("aa");
        v1.add(vv);
        vv = new UserCollectionListResponseVo();
        vv.setGoodId("bb");
        v1.add(vv);
        vv = new UserCollectionListResponseVo();
        vv.setGoodId("cc");
        v1.add(vv);
        vv = new UserCollectionListResponseVo();
        vv.setGoodId("cc");
        v2.add(vv);
        System.out.println("v1 = " + v1);
        System.out.println("v2 = " + v2);
        //删除重复字段
        v1 = v1.stream().filter(b -> v2.stream()
                .map(UserCollectionListResponseVo :: getGoodId).noneMatch(id -> Objects.equals(b.getGoodId(), id))).collect(Collectors.toList());
        //去重
        v1.addAll(v2);
        v1 =  v1.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(UserCollectionListResponseVo::getGoodId))), ArrayList::new));
        System.out.println("v1 = " + v1);

12.BigDecimal

(1)乘除

minPercents.divide(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).toString() (除100)
minPercents.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).toString()(乘100)
|加法 add()函数 减法subtract()函数 乘法multiply()函数 除法divide()函数 绝对值abs()函数|
|----------------------------------------------------------------------------|–|

(2)BigDecimal.setScale();//用于格式化小数点

setScale(1);//表示保留以为小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN);//直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP);//进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP);//四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN);//四舍五入,2.35变成2.3,如果是5则向下舍

13.下标从零开始 长度从一开始

14.对接第三方

(1)别人调我们的接口

【1】请求格式:POST(ContentType:application/x-www-form-urlencoded)处理方式

接收值为 HttpServletRequest request
取值是:

		Map<String, String> retMap = new HashMap();
        Set<Map.Entry<String, String[]>> entrySet = request.getParameterMap().entrySet();
        for (Map.Entry<String, String[]> entry : entrySet) {
            String name = entry.getKey();
            String[] values = entry.getValue();
            int valLen = values.length;
            if (valLen == 1) {
                retMap.put(name, values[0]);
            } else if (valLen > 1) {
                StringBuilder sb = new StringBuilder();
                for (String val : values) {
                    sb.append(",").append(val);
                }
                retMap.put(name, sb.toString().substring(1));
            } else {
                retMap.put(name, "");
            }
        }

15.转Json去除Data

 		JSONObject object = JSONObject.parseObject(retMap.get("body"));
        System.out.println(object.get("taxInfo"));

16.开发中需要注意的时间

(1)插入合同时间

	如果是时间戳,就不能用integer 因为integer最大值是转换成时间是2038-01-19 11:14:07
	需要用long 

17.BeanUtils.copyProperties

// 获取 Form 表单数据

Form form =new Form();

// 构造一个User对象

User user = new User();

// 从Form中拷贝属性到User对象中

BeanUtils.copyProperties(form ,user);

// 另外一种方式
ChannelConfigStatusDto param=new ChannelConfigStatusDto();
ChannelConfig value = BeanMapperUtils.map(param, ChannelConfig.class);

18.提交git到远程上去

第一步 点击 git bash here
在这里插入图片描述
第二步 输入相对应的语法
git add .
git commit -m ‘你需要提交的记录备注’
git push

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值