zoukankan      html  css  js  c++  java
  • atitit. groupby linq的实现(1)-----linq框架选型 java .net php

    atitit.  groupby linq的实现(1)-----linq框架选型 java .net php

    实现方式有例如以下

    1. Dsl/ Java8 Streams AP ,对象化的查询api ,推荐 1

    2. Linq::: like  sql dsl 1

    1.1. linq4j (jdk6 ok,jdk7 编译错误,又马jar下载) 1

    1.2. QuaereJava上的LINQ(新不上sourcecode) 1

    1.3. joSQL也是与Quaere类似的API 2

    1.4. 。

    net linq 2

    3. Sql 解析 2

    4. Lambda 2

    5. 嘎自实现 3

    1.5. linq4j  code 3

    6. apache collections4 (不行,马行上groupby) 3

    7. 林吧:::自己DSL来自stream api jdk8 相像 3

    8. Stream api n linq的不同 3

    9. 參考 3

    做报表统计啊。有个大问题。。有人整过集合的groupby查询汇总(Sum)没有哟??已经使用了linq4jquaere,josql,。ms Map字典不起作用。。

    1. Dsl/ Java8 Streams AP ,对象化的查询api ,推荐

    persons1.GroupBy(a => a.Name).Select(g => (new { name = g.Key, count

    长处是。。类型安全的查询,而且能使用智能提示功能!

    2. Linq::: like  sql 的dsl

    1.1. linq4j (jdk6 ok,jdk7 编译错误,又马jar下载)

    linq4j  d fun0 ,fun1 ,fun2 也不是好的dsl..

    作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    1.2. QuaereJava上的LINQ(新不上sourcecode)

    下例从一个从产品列表中得到产品名称的列表:

    List products = Arrays.asList(Product.getAllProducts());
    Iterable productNames =
      from("p").in(products).
      select("p.getProductName()");

    1.3. joSQL也是与Quaere类似的API

    这个到是有jar下载了...好像不支持list(map),only   list(bean)

    Caused by: java.lang.IllegalArgumentException: Cannot find method with name: url in class: java.util.Map

     

    1.4. 。net linq

    语句描写叙述:Linq使用Group By和Count得到每一个CategoryID中产品的数量。

    说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。

     

    1.计数

    1 var q =  

    from p in db.Products  

    3 group p by p.CategoryID into g  

    4 select new {  

    5 g.Key,  

    NumProducts = g.Count()  

    7 }; 

     

    3. Sql 解析  

    缺点是不能使用使用ide智能提示

    4. Lambda 

    5. 嘎自实现

    1.5. linq4j  code

      Linq4j.asEnumerable(emps)

                .groupBy(

                    EMP_DEPTNO_SELECTOR, new Function0<String>() {

                      public String apply() {

                        return null;

                      }

                    }, new Function2<String, Employee, String>() {

                      public String apply(String v1, Employee e0) {

                        return v1 == null ? e0.name : (v1 + "+" + e0.name);

                      }

                    }, new Function2<Integer, String, String>() {

                      public String apply(Integer v1, String v2) {

                        return v1 + ": " + v2;

                      }

                    })

                .orderBy(Functions.<String>identitySelector())

                .toList()

                .toString();

     

    6. apache collections4 (不行,马行上groupby) 

    7. 林吧:::自己DSL来自stream api jdk8 相像

    8. Stream api n linq的不同

    Stream  是基于lambdadsl  , 语法不跟个sql雅十...这个更灵活...

    Linq,雅十dsl,走十语法跟个sql雅十..linq更easy的...

    9. 參考

    怎样将常见的LINQ表达式转换为Java 8 Streams API表达式.

    Linq使用Group By经验总结 - 51CTO.COM.htm

    Java8怎样进行stream,reduce,collection操作 - 51CTO.COM.htm

  • 相关阅读:
    MVC NonAction属性
    未将对象引用设置到对象的实例
    回调函数callback
    Json详解
    浅谈HTTP中Get与Post的区别
    JQuery $.ajax()方法详解
    C#中Const和Readonly的区别
    全面解释StringBuilder、StringBuffer和String的关系
    基本数据类型的包装类和随机数
    枚举类的使用
  • 原文地址:https://www.cnblogs.com/llguanli/p/6784782.html
Copyright © 2011-2022 走看看