建立一个 Derby 日历,第 3 部分: 使用事务和锁定(上)
2010-04-19 00:00:00 来源:WEB开发网第二方面的修改涉及到事务管理。作为概念证明的程序立即执行所有的数据库修改,但是在这里,应用程序在请求时发出对数据库的每个修改,但直到用户专门要求的时候才会提交这些修改。提交之后,用户还可以选择回滚事务。
应用程序还能够模拟多用户会话,以及选择不同的锁定机制和隔离级别。
GUI 和 Web 的主要区别
谈到应用程序的修改,必须要了解 GUI 和 Web 日历应用程序之间的区别。
在 GUI 应用程序中,用户在启动应用程序的同时发起数据库连接,并一直保持该连接直到应用程序终止,这可能要花费很多时间。这段时间内,用户可以发起多个事务,事务执行的时间也可能很长。
但是基于 Web 的应用程序与此完全不同。与数据库的 Web 交互天生是无状态的。用户提交表单以添加或编辑一个事件,则 servlet 连接数据库,修改数据,断开连接并提交事务。
因此,除非要进行复杂的会话管理(这超出了本文的范围),事务管理就不是什么大问题。相反,Web 应用程序几乎就是会受其他使用锁定的会话的影响,而不会影响其他会话。
引入事务
这个过程的核心在于应用程序能够把动作组织成事务,有助于更好地理解什么是事务和事务的工作原理。
插入数据
为了观察事务,打开三个命令窗口。第一个用网络模式启动数据库,如 清单 1 所示。
清单 1. 启动数据库
>set DERBY_INSTALL=c:\derby
>set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;
>set CLASSPATH=%DERBY_INSTALL%\lib\derbynet.jar;%CLASSPATH%
>java org.apache.derby.drda.NetworkServerControl start -h 0.0.0.0
更多精彩
赞助商链接