• 2023-09-11工作错题集:绝了!BigDecimal计算百分数保留2位小数


    1 这两个SQL语句的区别

    1. select t.* from t_order t where if("" is null or "" = '',1=1,t.city like concat('%',"",'%')) and t.brand ="劳斯莱斯" and t.partner = "某合作商"
    2. select t.* from t_order t where t.city like concat('%',"",'%') and t.brand="劳斯莱斯" and t.partner = "某合作商"

    后面这个SQL,是查不到的city那一栏为null的数据的

    2 (date)t.call_time 不对,应该是date (t.call_time)

    这样才是将“yyyy-MM-dd HH:mm:ss”类型的t.call_time转变为date类

    3 SQL传入的参数是string的判空要注意啊!不要遗漏  = '' 空字符串 

    select t.* from t_order t where if("" is null or "" =''  ,1= 1,t.product like concat('%',"",'%'));

    如果你写成了

    select t.* from t_order t where if("" is null,1= 1,t.product like concat('%',"",'%'));

    少了一个对空字符串的判断,结果就是不一样的。

    4 null的判断是is null 而不是 = null..

    5 新增和修改的唯一限制

    新增和修改的判断逻辑类似,但有区别。新增的时候,想好限制条件
    修改的时候 我不想让它重复,就需要考虑,根据条件查出来的,不为空而且【Id不是自己】才可以修改。

    6 绝了!BigDecimal计算百分数保留2位小数

    1. BigDecimal d1 = new BigDecimal("2");
    2. BigDecimal d2 = new BigDecimal("3");
    3. BigDecimal result1 = d1.divide(d2, new MathContext(2, RoundingMode.HALF_UP)).multiply(new BigDecimal(100));
    4. BigDecimal result2 = d1.divide(d2, new MathContext(4, RoundingMode.HALF_UP)).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
    5. BigDecimal result3 = d1.multiply(new BigDecimal(100)).divide(d2, new MathContext(2, RoundingMode.HALF_UP));
    6. BigDecimal result4= d1.divide(d2, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);

    结果:

    result1------67.00
    result2------66.67
    result3------67
    result4------66.67

    用result2 和 result4 会好一点。而且result4似乎更准确一点。

    7 equalsIgnoreCase 忽略大小写

    String a = "A";
    String b = "a";
    boolean equals = a.equals(b);
    boolean ignoreCase = a.equalsIgnoreCase(b);
    System.out.println("IgnoreCase"+ignoreCase);//结果为true
    System.out.println(equals);//结果为false

    8 JSONObject.parseObject 方法将 JSON 字符串解析为 Map 类型的对象

    1. String json = "{'key1': 'value1', 'key2': 'value2'}";// 假设这是您要解析的 JSON 字符串
    2. Map<String, Object> map = JSONObject.parseObject(json, new TypeReference<Map<String, Object>>() {});

    这样就可以把json字符串转为特定的Map类型。
    否则,如果你只是需要Map,那么这样就行了:

    1. String json = "{'key1': 'value1', 'key2': 'value2'}";// 假设这是您要解析的 JSON 字符串
    2. Map<String, Object> map = JSONObject.parseObject(json, Map.class);
  • 相关阅读:
    vscode配置conda环境
    js foreach与for循环之return跳出循环
    Mysql概念
    楼盘小程序具备哪些功能板块?
    2022-08-25 AndroidR 默认赋予app权限,不弹出权限申请窗口
    输赢只是一时
    【基于FreeRTOS的STM32F103系统】移动底盘程序优化
    软件工程与计算总结(十九)软件测试
    Kafka接收消息
    linux中搭建c语言环境并编译
  • 原文地址:https://blog.csdn.net/tomorrow9813/article/details/132814758