【发布时间】:2012-09-12 21:55:18
【问题描述】:
我的任务是编写一个 Java 进程来将一些信息从旧的 as400 系统移动到我们新的 SQL Server 2008 安装。因为信息是在 as400 系统上管理的,所以这需要是一个“按需”解决方案(即有人每天启动一到两次,它应该使用最新版本的数据填充 SQL Server)。这是一组非常频繁使用的数据,所以我认为使用事务来清除表并重建它是一个好主意。该事务应防止任何人通过在我的过程中途请求数据而意外拾取不完整的列表。这是处理这种情况的正确方法吗?
如果需要进一步解释:
我是团队中的新开发人员之一,而资深开发人员之一正试图坚持我们执行“内存中替换”流程。他想更新两个表中存在的每条记录,插入不存在的新记录,然后删除不再存在的旧记录。我不相信这是一个好主意,特别是因为在这个过程中途的任何请求都会返回一个混杂的数据。我只是想知道我应该从技术角度多强烈地反击。
【问题讨论】:
-
过程中途的任何请求都将返回一个混杂的数据。如果您将加载过程放在事务中,则不会
-
你能再解释一下吗?
-
我对 Java 了解不多,但任何数据访问库都允许您在单个事务中发出多个 DML 语句。在事务期间,通常不允许其他请求查看未提交的更改。有关 JDBC 示例,请参阅 Using Transactions。