当前位置: 首页 > news >正文

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 =  

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更easy的...

 

9. 參考

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

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

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

相关文章:

  • Linux下安装MySQLdb模块(Python)
  • LWIP移植
  • G-Code 详解
  • umask值与Linux中文件和目录权限的关系
  • 2017-4-28 ListView控件
  • Vue2 第一天学习
  • 《Haskell趣学指南》—— 第2章,第2.2节Haskell的常见类型
  • awk 系列:如何使用 awk 的 ‘next’ 命令
  • 《深入浅出iPhone/iPad开发(第2版)》——你已经创建了自己的第一个iPhone应用程序!...
  • 十分钟搞清字符集和字符编码
  • 缓存失效竟然可以这么解决?
  • 一个最简单的jQuery插件编写历程
  • 《Android游戏开发详解》一2.10 使用对象
  • 《Python核心编程(第3版)》——2.8 练习
  • 《编译与反编译技术实战 》一 第1章 实践的环境与工具
  • Apache Pulsar 2.1 重磅发布
  • Laravel Telescope:优雅的应用调试工具
  • markdown编辑器简评
  • Nacos系列:Nacos的Java SDK使用
  • NSTimer学习笔记
  • Vue学习第二天
  • vue中实现单选
  • vue总结
  • 阿里云购买磁盘后挂载
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 关于使用markdown的方法(引自CSDN教程)
  • 基于webpack 的 vue 多页架构
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端工程化(Gulp、Webpack)-webpack
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 微信小程序实战练习(仿五洲到家微信版)
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 终端用户监控:真实用户监控还是模拟监控?
  • 【云吞铺子】性能抖动剖析(二)
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Spring Batch JSON 支持
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​第20课 在Android Native开发中加入新的C++类
  • !!java web学习笔记(一到五)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (C语言)fgets与fputs函数详解
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)windows配置JDK环境
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一)为什么要选择C++
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @WebService和@WebMethod注解的用法