博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
atitit. groupby linq的实现(1)-----linq框架选型 java .net php
阅读量:5983 次
发布时间:2019-06-20

本文共 1891 字,大约阅读时间需要 6 分钟。

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

 

实现方式有如下

 

 

做报表统计啊,有个大问题。。有人整过集合的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. 也是与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 =  

2 from p in db.Products  

3 group p by p.CategoryID into g  

4 select new {  

5 g.Key,  

6 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更容易的...

 

9. 参考

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

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

Java8如何进行stream,reduce,collection操作 - 51CTO.COM.htm

你可能感兴趣的文章
nose框架命令与特点
查看>>
笔试题:发奖金(搜狐2016研发笔试题)
查看>>
cdoj 1485 柱爷搞子串 sam treap
查看>>
OpenJDK 源码阅读之 Java 字节流输出类的实现
查看>>
Windows Socket Demo
查看>>
Eclipse 设置保存代码时自动格式化
查看>>
JavaEE(28) - {TODO}
查看>>
background:url 的使用方法
查看>>
jquery中的ajax
查看>>
pandas数据分析
查看>>
Redis学习笔记(2)-新建虚拟电脑,安装系统CentOSMini
查看>>
c++的map有关
查看>>
信息安全系统设计基础第六周学习总结
查看>>
SQL Injection 代码审计 1 (转)FreeBuf.COM
查看>>
ROR在NETBEANS中的环境设置
查看>>
restful_api
查看>>
U盘安装centOS和下载地址
查看>>
vmware install win8 and server2012 problem
查看>>
[产品经理手记-01] 我们到底是做什么的?
查看>>
tcp/ip五层协议
查看>>