从Speedment 3.0.17或更高版本的事务轻松返回值

交易次数

在我以前的文章中,我写了关于如何使用Speedment轻松使用事务的方法,其中我们原子地更新了两个银行帐户。 众所周知,事务是一种将多个数据库操作组合到一个原子执行的单个操作中的方法。

但是事务不仅与更新数据库有关,而且还与执行原子读取有关。 借助Speedment,我们可以使用Java流以原子方式计算值,然后以一种简单的方式将结果返回到事务范围之外的内容。

返回交易值

假设我们有一个包含电影和艺术家的数据库(例如,使用MySQL的开源Sakila数据库内容),并且我们想在一次交易中计算电影的数量加上数据库中艺术家的数量。 如果我们想在GUI或类似的工具中显示某种数据库大小,可能就是这种情况。 它看起来像这样:

long sumCount = txHandler.createAndApply(tx -> films.stream().count() + actors.stream().count());

当事务开始时,数据库的视图被“冻结”,因此在事务中看不到通过其他线程插入数据库的新电影或艺术家。 因此,我们可以安全地假定我们的视图不受其他线程的影响。

可以看出,使用非常少的样板代码,我们可以表达使用Speedment在事务内执行的功能。

准备工作

在使用事务之前,我们需要获得一个TransactionHandler如下所示:

SakilaApplication app = ....TransactionComponent transactionComponent = app.getOrThrow(TransactionComponent.class);TransactionHandler txHandler = transactionComponent.createTransactionHandler();

可以从应用程序中检索FilmManagerActorManager ,如下所示:

FilmManager films = app.getOrThrow(FilmManager.class);ActorManager actors = app.getOrThrow(ActorManager.class);

在此处阅读有关Speedment交易的更多信息 。

下一步是什么?

访问GitHub上的 Speedment开源并尝试一下!

翻译自: https://www.javacodegeeks.com/2017/11/easily-return-values-transaction-speedment-3-0-17-later.html

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

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

相关文章

华为路由设置虚拟服务器命令,华为路由器配置ip命令

基本命令  en 进入特权模式conf 进入全局配置模式in s0 进入 serial 0 端口配置ip add xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 添加ip 地址和掩码,电信分配enca hdlc/ppp 捆绑链路协议 hdlc 或者  ip unn e0  exit 回到全局配置模式in e0 进入以太接口配置ip add x…

分布式锁的三种实现方式_分布式锁的多种实现方式

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区…

apache ignite_使用Apache Ignite优化Spark作业性能(第1部分)

apache ignite来看看他们是如何工作的! 本文的某些部分摘自我的书《 Apache Ignite的高性能内存计算》 。 如果您对这篇文章感兴趣,请查看本书的其余部分,以获取更多有用的信息。 Apache Ignite提供了多种方法来提高Spark作业的性能&#xf…

Linux 命令之 unrar -- 解压 rar 格式的文件

文章目录一、命令介绍二、常用选项三、命令示例(一)按完整路径解压指定的压缩包到当前目录下(二)按完整路径且不覆盖已存在文件的方式解压指定的压缩档案到指定的目录下一、命令介绍 需要安装 rarlinux 才能使用该命令&#xff0…

微软家庭服务器,微软公布Windows Server 2012版本方案,不再提供家庭服务器版

微软官方网站今日公布Windows Server 2012将有四个版本,分别为Foundation、Essentials、Standard以及Datacenter。其中Foundation只供给原始设备制造商(OEM);Essentials适合中小企业使用,最大用户数为25个;Standard与Datacenter版…

eclipse创建神经网络_使用Eclipse Deeplearning4j构建简单的神经网络

eclipse创建神经网络神经网络导论 深度学习包含深度神经网络和深度强化学习,它们是机器学习的子集,而机器学习本身就是人工智能的子集。 广义地说,深度神经网络执行机器感知,该机器感知从原始数据中提取重要特征,并对每…

Linux 命令之 rar -- 压缩/解压文件

文章目录一、命令介绍二、子命令三、常用选项四、命令示例(一)压缩指定文件或者更新压缩包内指定的文件(二)压缩指定目录下的内容(不含目录本身)(三)创建自解压文件(四&a…

python 马赛克还原_卷积神经网络教你如何还原被马赛克的文本图像

对人类来说,将带有文字的图像锐化是很容易的。以图1为例。图1:被锐化的图像把图1恢复为图2也不是件很困难的事。图2:原图然而,我们是懒惰的,并且不想这样做,所以我们尝试用神经网络来自动实现图片的不模糊化…

angluar cdk_零分钟即可在容器开发套件(CDK)上实现云运营

angluar cdk尽管这很有趣,但是它实际上并不可行,并且很快就遇到了使用限制。前一段时间, 我逐步完成了在容器中安装称为CloudForms的云管理解决方案。 真正的解决方案是将这个示例放入Red Hat Demo Central集合中,并将其放在基于…

Linux 系统下载和安装 rarlinux

文章目录红帽系的 Linux下载已经编译好的软件包下载程序的源代码软件包Debian Linux安装过程常遇到的问题rarlinux 下载地址:http://www.rarlab.com/download.html rarlinux 相关命令使用说明,猛戳《Linux 系统下命令 unrar 的中文版使用说明》 红帽系的…

腾讯面试编程题python_腾讯面试官出的 2 道经典数据分析面试题

没想到这篇文章这么受欢迎,那就再分享一篇:苏克1900:腾讯高级数据分析师:十年分析之路的力荐书籍​zhuanlan.zhihu.com以下原文章:近期暑期实习和提前批招聘已经开始了,不论你是校招还是想社招,…

Linux 系统下命令 unrar 的英文版使用说明

查看中文版&#xff0c;猛戳《Linux 系统下命令 unrar 的中文版使用说明》 UNRAR 5.40 freeware Copyright (c) 1993-2016 Alexander RoshalUsage: unrar <command> -<switch 1> -<switch N> <archive> <files...> <listfiles...&g…

网络研讨室_免费网络研讨会:Java应用程序中的吞咽异常

网络研讨室1月30日参加我们的网络研讨会&#xff0c;以发现Java应用程序中的“隐藏”异常。 如果一棵树落在森林中&#xff0c;但是没有写到原木上&#xff0c;它会发出声音吗&#xff1f; 答案是肯定的。 这些类型的错误可能会对用户体验造成严重影响&#xff0c;而没有根本原…

java8默认内存收集器_使用正确的垃圾收集器将Java内存使用量降至最低

java8默认内存收集器大小对于软件至关重要。 很明显&#xff0c;与大的整体方法相比&#xff0c;在微服务体系结构中使用小片段具有更多优势。 最新的Java版本的Jigsaw有助于分解旧应用程序或从头开始构建新的云原生应用程序。 这种方法减少了磁盘空间&#xff0c;构建时间和启…

oc 协议 回调 静态成员_每日一问:c++类的成员函数,能作为线程的参数吗?

问&#xff1a;类的成员函数可以传入线程参数吗&#xff1f;回答&#xff1a;如果c语言的全局函数&#xff0c;可以。如果是类的静态成员函数&#xff0c;可以如果是类的普通成员函数&#xff0c;不可以为什么&#xff1f;《深入探索C对象模型》中提到成员函数时&#xff0c;当…

Linux 系统下命令 unrar 的中文版使用说明

查看英文版&#xff0c;猛戳《Linux 系统下命令 unrar 的英文版使用说明》 $ rar --help用法: rar <命令> -<选项 1> -<选项 N> <压缩档案> <文件...> <文件列表...> <解压缩路径\><命令> a 添加文件到压缩档案 …

如何使用 MySQL 安装后自带的帮助文档

文章目录一、查询帮助文档二、MySQL 相关资源网址一、查询帮助文档 输入命令 ? contents 或者 help contents 来显示所有可供查询的分类&#xff1a; mysql> ? contents; You asked for help about help category: "Contents" For more information, type help…

java设置并行度_控制Java并行流的并行度

java设置并行度在掌握了这些新功能之后&#xff0c;随着Java 9的最新发布&#xff0c;我们有了许多新功能可以用来改进我们的解决方案。 Java 9的发布也是修改我们是否掌握Java 8功能的好时机。 在这篇文章中&#xff0c;我想解决关于Java并行流的最常见的误解。 人们通常说您…

flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...

简介&#xff1a; 友信金服公司推行全域的数据体系战略&#xff0c;通过打通和整合集团各个业务线数据&#xff0c;利用大数据、人工智能等技术构建统一的数据资产&#xff0c;如 ID-Mapping、用户标签等。友信金服用户画像项目正是以此为背景成立&#xff0c;旨在实现“数据驱…

MySQL 如何将数据表中字符串类型的字段值中的部分字符串替换掉(字符串替换/字符串拼接/生成 SQL 脚本语句)

使用拼接函数(concat)生成更新某字段值的 SQL 脚本语句 一、生成更新字段 logo 的 SQL 脚本语句如下: select concat( update tf_company set logo=, replace(logo,http://www.dpqyw.com:80,http://www.dpqyw.com), ,where company_id=,company_id,