zoukankan      html  css  js  c++  java
  • Java 中使用Linq

     maven安装。

    <dependency>
        <groupId>com.bestvike</groupId>
        <artifactId>linq</artifactId>
        <version>3.1.0</version>
    </dependency>

    带where查询

    //方法链
    var ddd = Linq.of(list).where(x -> x.getAge() > 15).toList();
    
    //sql
    String sql = "select * from user where age>15";

      简单的函数计算(max、min、count、sum)

    复制代码
    //方法链
    //var ddd = Linq.of(list).max(x -> x.getAge());//获取最大的年龄
    //var ddd = Linq.of(list).min(x -> x.getAge());//获取最小的年龄
    //var ddd = Linq.of(list).count();//获取总数
    var ddd = Linq.of(list).sumInt(x -> x.getAge());//获取总数
    
    //sql
    //String sql = "select max(age) from user";
    //String sql = "select min(age) from user";
    //String sql = "select count(1) from user";
    String sql = "select sum(age) from user";
    复制代码

      排序

    复制代码
    //方法链
    //var ddd = Linq.of(list).orderBy(x -> x.getAge());//正序
    var ddd = Linq.of(list).orderByDescending(x -> x.getAge());//倒序
    
    //sql
    //String sql = "select * from user order by age";
    String sql = "select * from user order by age desc";
    复制代码

      top1

    //方法链
    var ddd = Linq.of(list).firstOrDefault();
    
    //sql
    String sql = "select top 1 from user";

       跳过前面多少条数据,取剩下的数据

    //方法链
    var ddd = Linq.of(list).orderByDescending(x -> x.getAge()).skip(1);
    
    //sql
    String sql = "select * from (select ROW_NUMBER() over(order by age desc) as rowNum,*) t wher rowNum>1";

      分页查询

    复制代码
    //方法链
    //跳过第一条,取两条,即取第二条到第四条
    var ddd = Linq.of(list).orderByDescending(x -> x.getAge()).skip(1).take(3);
    
    //sql
    String sql = "select * from (select ROW_NUMBER() over(order by age desc) as rowNum,*) t wher rowNum>1 and rowNum<=4";
    复制代码

      包含,相当于like

    //方法链
    var ddd = Linq.of(list).where(x->x.getName().contains("李"));
    
    //sql
    String sql = "select * from user where name like '%李%'";

      分组group by

    复制代码
    //方法链
    var ddd = Linq.of(list).groupBy(x -> x.getAge()).toList();
    for (var t : ddd) {
        System.out.println(t.getKey() + "--" + t.minInt(x -> x.getMoney()) + "--" + t.maxInt(x -> x.getMoney()) + "--" + t.sumInt(x -> x.getMoney()));
    }
    
    //sql
    String sql = "select age,min(money),max(money),sum(money) from user group by age";
    复制代码

      sql中的in

    复制代码
    //方法链
    List<Integer> ages = new ArrayList<>();
    ages.add(15);
    ages.add(16);
    var ddd = Linq.of(list).where(x -> ages.contains(x.getAge()));
    
    //sql
    String sql = "select * from user where age in (15,16)";
     
    转自:https://www.cnblogs.com/shadoll/p/14292909.html
  • 相关阅读:
    在FreeBSD中pkg包管理器使用实例
    租了一台华为云耀云服务器,却直接被封公网ip,而且是官方的bug导致!
    Java8 Stream对集合的一些应用
    idea 编码UTF-8 设置
    Java RSA非对称加密算法实现
    分库分表 策略 临时
    springboot+dubbo + zookeeper 案例
    跟着华为,学数字化转型(6):一把手工程
    跟着华为,学数字化转型(5):数据保护和业务决策
    跟着华为,学数字化转型(4):数据采集
  • 原文地址:https://www.cnblogs.com/axu92312/p/15753540.html
Copyright © 2011-2022 走看看