使用Speedion 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/348519.shtml

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

相关文章

无线业务需求的线路设计以及拓扑图实现

MSC →\rightarrow→BSC →\rightarrow→ BTS ADM-1 →\rightarrow→ ADM-14 →\rightarrow→ ADM-16 边缘层 →\rightarrow→ 汇聚层 →\rightarrow→ 核心层 设计光缆链路时要注意的问题: 链路要适当长一些,减少中继设备接续造成的损耗尽可能多的使…

双代号网络图节点时间参数_管理和实务都考!快速学会单代号与双代号参数计算...

工程网络计划是二级建造师《建设工程施工管理》科目每年均会进行考核的高频考点,重点在双代号、单代号网络计划的概念及应用。主要题型为通过网络图或文字描述计算相关网络参数或确定关键线路,本篇就双代号、单代号网络计划相关参数的计算,以…

idea中maven执行install报错_IntelliJ IDEA Maven编译install时报错,无效的发行版:1.8

1.首先看java环境是否配置正确JAVA_HOME : C:\Program Files\Java\jdk1.8.0_92 //安装的Jdk路径PATH: %JAVA_HOME%\bin;按下"window"R 输入cmd 按下"ENTER" 输入java -version,如果出现了版本号等信息说明配置成功2.确认maven配…

gc可视化分析_GC内存可视化器教程–第一部分

gc可视化分析正如您从过去的文章中可能已经读到的那样,要获得的Java程序员的一项关键技能就是理解和评估JVM的运行状况的能力,例如Java堆内存占用量以及垃圾回收过程。 为了实现上述目标,所有JVM供应商(Oracle,IBM等&…

涉及到IP地址的各种计算(CIDR/子网划分/IP地址范围的确定等)

1.判断是否属于子网 方法:如子网86.32.0.0/12,它的网络前缀有12位,把点十分制划为二进制展开,每一个点分隔开的是相邻的两组数字,每组数字有八个,你把他写在纸上数一下,扣掉前面的八位数字&…

go 变量大写_go语言如何将大写转小写

go语言将大写转小写的方法:首先创建一个go示例文件;然后定义一个字符串类型的变量;接着使用ToLower函数将大写的变量字符全部转成小写;最后使用print函数打印转换后的结果即可。本文操作环境:Windows7系统、Go1.11.2版…

为什么Spring的健康状况会再次下降,下降,上升,上升,上升和下降?

为什么 我们新JavaScript客户端应用程序会定期调用Grails后端的/health端点来确定离线状态。 事情开始变得“​​有趣”。 我们免费获得此端点,因为Grails基于Spring Boot,而Spring Boot带有一个名为Spring Boot Actuator的子项目。 这给了我们许多端点…

浅谈auto与decltype函数的区别

auto与decltype都是C里处理类型的指示符,它们的使用场景如下: autodecltype在我们需要给变量赋值的时候,简单的程序往往可以通过观察得出表达式的类型,但在一些大型程序中这样做往往是行不通的,为此可以使用auto指示符…

php mysql 快餐_用PHP+MYSQL做一个简单的点餐系统的后台,初学者. 请高手指点下如何实现后台添加菜名 餐馆 价格...

展开全部" name"cm" placeholder"菜名" type"text" />" name"cg" placeholder"餐馆" type"text" />" name"jg" placeholder"价格" type"text" />if…

三句话讲清楚直接初始化与拷贝初始化

直接初始化 int main() {int a(3);printf("%d",a); }拷贝初始化 int main() { int a3; printf("%d",a); }区别 直接初始化拷贝初始化不使用等号初始化一个变量就是直接初始化使用等号初始化一个变量就是拷贝初始化 直接初始化与拷贝初始化的使用一般以代…

redhat 9.0 mysql 配置_RedHat 9.0下Apache+PHP+MySQL服务器安装配置

一、安装环境操作系统:Linux RedHat 9.0web服务软件:Apache httpd-2.2.3.tar.gz数据库软件:MySQL-server-5.0.26-0.i386.rpm(服务端)MySQL-client-5.0.26-0.i386.rpm(客户端)MySQL-devel-5.0.26-0.i386.rpm(开发包)MySQL-shared-5.0.26-0.i38…

spark减少内存消耗_将内存消耗减少20倍

spark减少内存消耗这将是另一个故事,与我们分享有关内存相关问题的最新经验。 该案例是从最近的客户支持案例中提取的,在该案例中,我们遇到了一个行为异常严重的应用程序,该应用程序因生产中的OutOfMemoryError消息而死。 在连接了…

运筹视角下,体系化学习机器学习算法原理的实践和总结

文章目录 引言目标设计目标实践文章汇总经验总结一则预告 引言 上两周总结了我在体系化学习运筹学基础知识方面的个人经验,看过那篇文章的人可能知道,今年我还花了很多时间学习机器学习中各种模型的算法原理。 在工业应用中,机器学习和运筹…

C++输出一句话里面第一个单词并大写

这里主要是使用了decltype()函数来方便我们对数据处理&#xff0c;它可以自动的帮助我们推算变量的类型&#xff0c;防止后面出现溢出的错误 #include<iostream> #include<string> using namespace std; int main() {string s1("juice and rice");//迭代…

低版本mysql utf8mb5_记住:永远不要在 MySQL 中使用 UTF-8

最近我遇到了一个 bug&#xff0c;我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串&#xff0c;然后出现了一个离奇的错误&#xff1a;Incorrect string value: ‘\xF0\x9F\x98\x83 我用的是 UTF-8 编码的客户端&#xff0c;服务器也是 UTF-8 编码的&…

C++中使用cin读取一组词存入vector后将其大写打印

今天在复习C的时候偶然看到这个题目&#xff0c;要求是使用C完成大写转换然后存放到vector中去&#xff1a; 这里也是使用了一个string库&#xff0c;但不知道为什么string库里并没有自带大小写转化&#xff0c;只得使用algorithm库的transform函数来进行大小写转化 #include&…

使用Logstash,JDBC将数据聚合并索引到Elasticsearch中

介绍 在我以前的帖子在这里和这里我展示了如何使用JDBC和Elasticsearch JDBC进口商库从SQL数据库索引数据到Elasticsearch。 在这里的第一篇文章中&#xff0c;我提到了使用导入程序库的一些缺点&#xff0c;这些缺点我已在此处复制&#xff1a; 不支持ES版本5及更高版本 嵌套…

hive选择mariadb还是mysql_Hive MariaDb的安装

1.安装命令yum -y install mariadb-server mariadb2.进入mariadb数据库mysql -u root -p //第一次登录时的密码为空3.修改mariadb数据库密码update user set passwordpassword(sugar) where userroot;4.设置root用户可以从任何主机登录&#xff0c;对任何的库和表都有访问权限g…

一文带你彻底搞懂C++中一些常见指针(形如*p)的用法

提高指针效率以及程序可读性 为什么要后置运算符&#xff1f; 有C语言编程经验的人可能会感到疑问&#xff0c;为什么在C里面我们推荐优先使用运算符的前置版本&#xff0c;就是把运算符号放在变量的前面&#xff0c;前置版本的递增避免了不必要的工作&#xff0c;它将值加一后…

mysql ssd tps 上不去_转【案例分享】压测TPS上不去

1.问题描述&#xff1a;客户新上的一个关键业务系统&#xff0c;在做上线前的压力测试时&#xff0c;应用的并发无法达到上线前的并发指标和响应时间指标要求。压测时TPS的曲线很不稳定&#xff0c;如下所示&#xff1a;2.分析过程&#xff1a;从上述知识点可以知道&#xff1a…