Java 8:在2分钟内将智能流与数据库一起使用

快速流媒体

当Java 8最终问世时,我和一些大学开始了一个开源项目,以利用Java 8的流库使整个Java / DB问题进一步向前发展,以便将数据库表视为纯Java 8流。 速度诞生了! 哇,现在我们可以做类型安全的数据库应用程序了,而不必再编写SQL代码了。在上世纪90年代,我们的Java开发人员不得不努力使数据库应用程序正常工作。 有很多编码,调试和调整。 尽管如此,应用程序还是经常面对我们不断增加的痛苦而爆炸。 随着更好的语言,JDBC和框架支持,事情随着时间的推移逐渐得到改善。 我想我们的开发人员也有所改进,但是对此有不同的看法……

杜克和尖塔映射流。

杜克和尖塔映射流。

Speedment连接到现有数据库并生成Java代码。 然后,我们可以使用生成的代码使用标准Java 8流方便地查询数据库。 随着新版本2.3的问世,我们甚至可以进行并行查询流!

让我们举一些例子,假设我们定义了以下数据库表:

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(45) NOT NULL,`firstName` varchar(45) DEFAULT NULL,`lastName` varchar(45) DEFAULT NULL,`email` varchar(45) NOT NULL,`password` varchar(45) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `email_UNIQUE` (`email`),UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB;

开源数据库MySQL,PostgreSQL和MariaDB免费提供Speedment。 还支持商业数据库(如Oracle)作为企业附加功能。

例子

查询方式

选择所有带有“ .com”邮件地址的用户并打印:

users.stream().filter(EMAIL.endsWith(".com")).forEach(System.out::println);

选择名字为“ Adam”或“ Cecilia”的用户,并按用户名顺序对其进行排序,然后选择其中的前10位并提取电子邮件地址并进行打印。

users.stream().filter(FIRST_NAME.in("Adam", "Cecilia")).sorted(USERNAME.comparator()).limit(10).map(User::getEmail).forEach(System.out::println);

创建数据库内容

创建一个新用户并将其持久保存在数据库中:

users.newEmptyEntity().setUsername("thorshammer").setEmail("mastergamer@castle.com").setPassword("uE8%3KwB0!").persist();

更新数据库内容

查找id = 10的用户并更新密码:

users.stream().filter(ID.equal(10)).map(u -> u.setPassword("pA6#nLaX1Z")).forEach(User::update);

删除数据库内容

删除ID = 100的用户:

users.stream().filter(ID.equal(100)).forEach(User::remove);

新酷玩法:并行查询

做某种昂贵的手术
对于10_000 <= id <20_000的用户并行

users.stream().parallel().filter(ID.between(10_000, 20_000)).forEach(expensiveOperation());

设定

上面示例的安装代码:

final Speedment speedment = new JavapotApplication().withPassword("javapot") // Replace with your real DB password.build();final Manager<User> users = speedment.managerOf(User.class);

加速入门

在GitHub上了解有关如何开始使用Speedment的更多信息。

翻译自: https://www.javacodegeeks.com/2016/04/java-8-use-smart-streams-database-2-minutes.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MapReduce 详解

MapReduce的整个运行分为两个阶段&#xff1a; Map和Reduce Map阶段由一定数量的Map Task组成 输入格式的数据格式化&#xff1a;InputFormat 数日数据的处理:Mapper 数据分组&#xff1a;Partitioner 下面流程图&#xff1a; 1. Map task 首先从HDFS上Read文件&#xff0c;通过…

早期访问中具有NetBeans的Oracle公共云Java服务

谁期望发生这种情况&#xff1a;Oracle正在开发公共云产品&#xff0c;并且即将开始正式启动的迹象已经出现。 在正式宣布之后将近一年&#xff0c;我被邀请加入所谓的“抢先体验”计划&#xff0c;以试驾新服务并提供反馈。 多亏负责产品的经理Reza Shafii &#xff0c;我才可…

HTML5调整图像垂直边距,77.通过vspace和hspace属性可以分别调整图像的垂直边距和水平边距。()()...

具有东方建筑特色、&#xff0e;通图像规模宏大、气势雄伟的古代建筑群是( )属性水平完成规定的大作业分别Which of the following parks are the urban parks of New York?调整的垂Which of the following countries have once occupied New York city in the 17th century?…

Javac可以编译,Java显示找不到或无法加载主类

运行时候加入完整包名。转载于:https://www.cnblogs.com/theWinter/p/8594354.html

台式计算机欢迎界面下不去,Win7系统开机不显示欢迎界面的方法

现在办公人员做事情都讲究效率&#xff0c;甚至连电脑开机都不放过&#xff0c;win7系统加快开机速度的方法有很多种&#xff0c;开机不显示欢迎界面便是其中之一。有些用户觉得开机显示欢迎界面是非常浪费时间的一件事&#xff0c;想要删除电脑中的欢迎界面。但是很多电脑白不…

CompressedOops:Java压缩参考简介

在本文中&#xff0c;我们将向您介绍一种称为Compressed oops的JVM优化。 压缩oop的概念是由32位和64位体系结构之间的差异引起的。 因此&#xff0c;我们将对64位体系结构进行简短的回顾&#xff0c;然后再深入探讨压缩oop的主题。 最后&#xff0c;我们将通过一个简单的示例看…

NYOJ90 整数划分(经典递归和dp)

整数划分 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;3描述将正整数n表示成一系列正整数之和&#xff1a;nn1n2…nk&#xff0c; 其中n1≥n2≥…≥nk≥1&#xff0c;k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。…

昆士兰科技大学计算机专业,昆士兰科技大学QUT计算机科学Computer Science专业排名第101-125位(2021年THE世界大学商科排名)...

2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布&#xff0c;昆士兰科技大学QUT计算机科学世界排名第101-125位&#xff0c;昆士兰科技大学QUT计算机科学专业实力怎么样呢&#xff1f;下面美英港新留学介绍昆士兰科技大学QUT计算机科学专业培养计划&am…

计算机休眠下睡眠的不同点是什么,电脑的关机选项里,休眠和睡眠有什么具体的区别呢?...

电脑的关机选项里&#xff0c;休眠和睡眠有什么具体的区别呢&#xff1f;以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;电脑的关机选项里&#xff0c;休眠和睡眠有什么具体的区别呢&#x…

开发一个智能问答机器人(优化篇)

上一篇介绍了整个问答机器人的技术架构和特定&#xff0c;本篇着重说下 如何让机器人&#xff08;看起来&#xff09;更智能 输入联想 使用jquery.autosuggest.js实现的输入联想&#xff0c;在输入2个字后&#xff0c;在5000个问答中基于全文检索&#xff0c;检索10条记录&…

java中的单例模型

参考网址:http://www.runoob.com/design-pattern/singleton-pattern.html 1.目的:保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。(比如世界只有一个月亮,党只有一个主席) 2. 优点&#xff1a; 1、在内存里只有一个实例&#xff0c;减少了内存的开销&#x…

跨站点脚本(xss)_跨站点脚本(XSS)和预防

跨站点脚本(xss)如OWASP网站&#xff08;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS&#xff09;&#xff09;所述&#xff0c;跨站点脚本&#xff08;XSS&#xff09;攻击的变种几乎是无限的。 在这里&#xff0c;我建议使用基于Servlet筛选器的解决方案来清…

countdown软件测试死亡时间真假,countdown

countdown死亡倒计时真的假的?countdown这款软件是一款有电影衍生出来的产品&#xff0c;很多朋友都很好奇这个countdownapp测试死亡时间准不准&#xff0c;那么今天小编就为大家带来详细的介绍&#xff0c;感兴趣的朋友们一起来看看吧!这是一款在电影倒忌时中出现的时钟软件&…

在计算机中描述景物结构形状与外貌,在计算机中通过描述景物的结构、形状与外貌,然后将它绘制成图在屏幕上显示出来,此类图像称为_____。...

并实打印现共享文件和机等共享功能&#xff0c;计中通屏完全地相信平等互通&#xff0c;网工需的则所作模局域式是&#xff0c;网络的各没有台计一个内部主次之分若要算机。算机述景包括条件主要区域规划发展。过描的咨项目询包括(准备建设阶段。结构包括咨询主要工程任务师的。…

background-size属性100% cover contain

backgroun-size: 数字&#xff1a;100px 80px 百分比&#xff1a;100% 100% 相对于父元素的&#xff0c;能占满全屏&#xff0c;但是比例可能会失真 cover&#xff1a;占满全屏&#xff0c;可能一部分显示不出来 contain&#xff1a;有一个占满方向占满&#xff0c;背景图不失真…

展示Java开发人员课程包

60个小时以上的课程&#xff0c;5门所有级别的课程&#xff1a;成为Java编程专家 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了一个极端的报价 。 我们提供的Java Developer Course Bundle 仅售39美元&#xff0c;而不是…

吃鸡服务器不接受响应,绝地求生:蓝洞优化服务器性能,从此告别掉帧延迟!...

原标题&#xff1a;绝地求生:蓝洞优化服务器性能&#xff0c;从此告别掉帧延迟&#xff01;很多玩家们都非常了解服务器的重要性&#xff0c;服务器响应时间也可以描述为‘网络延迟’。如果服务器的响应时间减少(或者网络延迟减少) 的话&#xff0c;玩家们可以体验到更加顺畅的…

fifa15服务器位置,《FIFA 15》全系统教程图文攻略

《FIFA 15》全系统教程图文攻略2014-09-23 11:04:14来源&#xff1a;3DM论坛编辑&#xff1a;评论(0)《FIFA 15》为EA旗下足球模拟游戏&#xff0c;游戏使用了《UFC》所使用的EA的Ignite引擎&#xff0c;球员的全身细节、动作以及物理破坏效果都相当到位&#xff0c;将给带给玩…

主机做服务器共享文件,主机做文件共享服务器

主机做文件共享服务器 内容精选换一换用户要使用CSG&#xff0c;首先要注册一个华为云帐号&#xff0c;才有访问华为云资源的权限。目前CSG服务处于公测阶段&#xff0c;需要申请公测并通过审核才能使用&#xff0c;商用后自动开通。此外为确保用户能正确快速使用CSG服务&#…

i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!

大家都知道i7处理器的性能非常强劲&#xff0c;但是很多人买电脑时却选择i5或者AMD的&#xff0c;这是为什么&#xff1f;仅仅是价格原因么&#xff1f;可是为什么即使是预算足够&#xff0c;那些懂电脑的人也不会去选择I7处理器&#xff0c;难道名声在外的i7处理器真有这么差&…