交易次数

在我以前的文章中,我写了关于如何使用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

使用Speedion 3.0.17或更高版本轻松从事务中返回值相关推荐

  1. 使用Speedment 3.0.17及更高版本简化了事务

    交易次数 有时我们想确保我们的数据库操作是原子执行的,并且与其他操作分开. 这是交易起作用的地方. 交易是一组操作 数据库可能接受或不接受作为原子操作的建议. 因此,要么接受交易中的所有操作,要么不接 ...

  2. 使用Speedment 3.0.17及更高版本简化交易

    交易次数 有时我们想确保我们的数据库操作是原子执行的,并且与其他操作分开. 这是交易起作用的地方. 交易是一组操作 数据库可能接受或不接受作为原子操作的建议. 因此,要么接受交易中的所有操作,要么不接 ...

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

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

  4. 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...

    棉花糖多少钱 In Android 5.x and below, accessing your list of running apps was simple-you'd jump into Sett ...

  5. PostgreSQL 14及更高版本改进

    PostgreSQL 14及更高版本 本文谈谈PG14中的关键特性及社区中正在谈论PG15及更高版本的内容. PG14的主要特性 逻辑复制的改进 PG14中对逻辑复制进行了几项增强: 1) 正在进行中 ...

  6. dock运行环境对linux的版本要求,Latte Dock 0.8发布,KDE Plasma 5.12或更高版本才能用...

    现在可以下载最新版本Latte Dock 0.8了,它是一个基于图标的KDE桌面任务栏,目前可设置KDE商店共享和更多功能.如果你在使用Ubuntu 18.04可以安装旧版本的Latte Dock或者 ...

  7. 安装 vSphere Client 5.0 失败显示错误:此产品只能安装在 Win XP SP2 及更高版本上...

    在 Windows 8 上安装 vSphere Client 5.0 时失败,并显示错误:此产品只能安装在 Windows XP SP2 及更高版本上 (2102145) Symptoms 免责声明: ...

  8. import python crash_import numpy在numpy版本1.16.0及更高版本时会导致Python崩溃

    在Windows Server 2012上使用新安装的Python3.7.3 安装NumPy 1.16.0或更高版本时,import numpy会导致Python崩溃.降级到1.15.4解决了这个问题 ...

  9. android7.0模拟器调试,android - 为什么在android 7.0及更高版本上出现模拟器错误? - 堆栈内存溢出...

    我正在开发将联系人保存在.vcf文件中的应用程序. 当我运行模拟器来测试应用程序时,我还会收到以下错误. 应用程序正在物理设备上运行. 但是android 7.0及更高版本的模拟器也给出了错误. (警 ...

最新文章

  1. Anaconda3 离线安装 Django-3.2.7 及依赖项setuptools、sqlparse 、asgiref、typing_extensions等模块
  2. 查看android手机原生app包名的方法
  3. LeetCOde-394:字符串解码
  4. 帮助罕见病患者买得到药 京东健康上线“罕见病关爱中心”
  5. 快速校对所有文件的md5值
  6. android 动画效果
  7. 【图像边缘检测】基于matlab拉普拉斯算法图像边缘检测与增强【含Matlab源码 456期】
  8. layui中table表格的操作列(删除,编辑)等按钮的操作
  9. 批处理删除文件夹下所有文件和文件夹
  10. 程序员养生-人体白发的机制及治疗、调养恢复
  11. 联想Y430P CentOS 7.3 无线网络的配置
  12. 非对称加密(RSA)详解
  13. 糖葫芦(齐大第十一届校赛)
  14. 儒略历--Java代码(附带发现了一些问题)
  15. 网络空间安全 知识图谱的构建与应用(一)
  16. 如何把pdf转换成excel转换器免费使用
  17. 视频教程-监控云台软件编写-C/C++
  18. 【蒸馏+剪枝】(一)Cascaded channel pruning using hierarchical self-distillation
  19. 计算机类综合素质测评考什么,想问一下事业单位的综合素质测评是考什么内容呢?..._事业单位考试_帮考网...
  20. Arduino开发PAJ7620U2手势识别传感器

热门文章

  1. Mysql中的行级锁、表级锁、页级锁
  2. php artisan快捷命令
  3. 不好意思,你这个加分理由不行……
  4. 《下辈子还教书》经典语录(1)
  5. 《四世同堂》金句摘抄(十一)
  6. 新闻发布项目——分页公共类(PageUitl )
  7. 电脑基本快捷键的使用
  8. nbiot开发需要掌握什么_学习软件开发需要准备什么?
  9. 单位矩阵的逆矩阵是它本身吗_矩阵运算、单位矩阵与逆矩阵(二)
  10. JAVA 实现 JWT