【发布时间】:2013-02-08 01:25:47
【问题描述】:
我正在用 Java 开发计费软件。在我的应用程序中,用户打开一个用于创建发票的窗口。
当窗口打开时,它会获取MaxID 并从INVOICE 表中返回long MaxID+1 并将其显示在Jlabel 中。现在,当用户每次开始计费时,发票编号将为MaxID+1。该系统在单用户应用程序中运行良好。
但是当这个应用程序在多台计算机上运行时,就会出现一个很大的问题。当两个用户,比如userOne 和userTwo 同时打开同一个窗口时,他们将得到相同的MaxID+1。结果,他们俩都将在同一个发票号中输入数据。我该如何解决这个问题?
请帮忙。
【问题讨论】:
-
还有什么原因你没有在数据库本身中使用自动增量列吗?
-
自动增量在这里不起作用,因为 MaxID+1 对几行来说是相同的。这是发票编号。一张发票可以有多个项目。