Web 和桌面应用程序在数据库访问方面的区别

Difference between web and desktop applications in database access

我有一点理论问题。

创建 Web 应用程序时,桌面应用程序与数据库的有效连接和活动连接是不同的。所以我很好奇是否有一些解决方案可以提供更多类似桌面的数据库访问,例如来自客户端(Web 浏览器)的异步请求的事务?

编辑: 所以我想通了,可以有一个来自客户端的异步请求的事务过程。有没有解决方案,可以在网络应用程序中提供?

例如,我有一个 assynchronou ajax 调用,它由多个操作组成,我想将它们作为事务处理。如果一切正常,操作将全部完成。但是如果其中一个失败了,就回滚它。就像它在数据库中一样。可能吗?

edit2: 也许我错了,问题不在于 ajax,而是关于整个网络应用程序,但我认为没有办法制作来自 Web 客户端的异步请求。

数据库不知道谁在身份验证之外连接。

事务需要持续连接到数据库。要使其与 Web 应用程序一起工作,您需要一个允许应用程序 运行 持续独立于客户端请求的平台。 Java servlet 最适合,php 是禁忌。所以我假设您将使用 java servlet。

在java servlet 中,您可以创建一个数据库事务,为其创建一个id,然后将它们存储在静态变量或提供的应用程序范围的对象context 中。然后,return客户端的id。

当客户端要发送另一个请求时,让它发送id。然后应用程序可以根据 id 定位事务变量。只要应用程序在两次请求之间没有重新启动,事务就仍然存在并处于活动状态。

因为 web 应用程序不知道用户何时离开应用程序,您必须创建一种机制来定期检查事务,然后在用户离开它们指定的时间段后回滚。