zoukankan      html  css  js  c++  java
  • java开发两三事(2)-java多数据源+java8stream与LocalDateTime时间差

    1. 场景描述

    最近在工作中碰到的几个问题,有点坑,记录下,遇到相同或类似问题的朋友可以参考下。

    2. 解决方案

    2.1 拼接sql后,多数据源执行

    采用Spring+DruidDataSource数据源方式,程序中代码有点多,最简单的代码如下:

     DruidDataSource druidDataSource = new DruidDataSource();
    druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/ruanjianlaowang?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai");
            druidDataSource.setUsername("ruanjianlaowang");
            druidDataSource.setPassword("ruanjianlaowang");
    
            String handleSql = "select * from t_ruanjianlaowang";
    
            JdbcTemplate jdbcTemplate = new JdbcTemplate(druidDataSource);
            List<Map<String, Object>> result = jdbcTemplate.queryForList(handleSql);
            return result;
    

    说明:

    (1)新建DruidDataSource数据源,进行连接配置;

    (2)新建JdbcTemplate ,设置DruidDataSource参数即可

    代码很简单,采用spring的JdbcTemplate进行数据源配置,数据源这块项目中抽出来设置成公共的。

    2.2 JAVA8的stream

    stream现在是越用越多了,还是不是太熟练,简单记录下,经常使用的是map与filter

    map 简单数就是处理,方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); 
    List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
    
    filter 过滤,方法用于通过设置的条件过滤出元素。以下代码片段使用 filter 方法过滤出空字符串:
    List<String>strings = Arrays.asList("ruan", "jian", "lao", "", "wang", "jkl");  long count = strings.stream().filter(string -> string.isEmpty()).count();
    
    

    2.3 java8的LocalDateTime获取时间差

      public  static  void test14() {
            LocalDateTime pre = LocalDateTime.now();
            try {
                Thread.sleep(5 * 1100); //设置暂停的时间 5 秒,软件老王
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            LocalDateTime aft = LocalDateTime.now();
            Duration  duration = Duration.between(pre, aft);
            System.out.println(duration.getSeconds());
        }
    

    返回结果为long类型的相差秒数。


    I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    慎用静态类static class
    20170617
    学习笔记之工厂模式-2017年1月11日23:00:53
    链表翻转
    面试被虐
    tips
    依赖注入那些事儿
    浅谈算法和数据结构(1):栈和队列
    猫都能学会的Unity3D Shader入门指南(一)
    SerializeField等Unity内的小用法
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11956493.html
Copyright © 2011-2022 走看看