Java:事务处理系统



我有表格accountsactionaccounts需要根据存储在action中的指令进行修改。
action中,每行包含一个帐户 ID、一个操作(i=插入、u=update、d=删除、x=无效操作)以及用于更新帐户的数量。

  • 在插入时,如果帐户已存在,则应进行更新相反
  • 在更新时,如果该帐户不存在,则由插入
  • 删除时,如果该行不存在,则不执行任何操作

输入

帐户:

+---id----value--+
|   1  |   1000  |
|   2  |   2000  |
|   3  |   1500  |
|   4  |   6500  |
|   5  |    500  |
+----------------+

行动:

+---account_id---o---new_value---status---+
|       3      | u |     599   |          |
|       6      | i |    2099   |          |
|       5      | d |           |          |
|       7      | u |    1599   |          |
|       1      | i |     399   |          |
|       9      | d |           |          |
|      10      | x |           |          |
+-----------------------------------------+

输出

帐户:

+---id----value--+
|   1  |    399  |
|   2  |    800  |
|   3  |    599  |
|   4  |   1400  |
|   6  |  20099  |
|   7  |   1599  |
+----------------+

行动:

+---account_id---o---new_value-------------------status----------------+ 
|       3      | u |     599   | Update: Success                       |
|       6      | i |   20099   | Update: Success                       |
|       5      | d |           | Delete: Success                       |
|       7      | u |    1599   | Update: ID not founds. Value inserted |
|       1      | i |     399   | Insert: Acc exists. Updated instead   |
|       9      | d |           | Delete: ID not found                  |
|      10      | x |           | Invalid operation: No action taken    |
+----------------------------------------------------------------------+

我在Java和JDBC方面经验丰富,但不幸的是,我不知道如何从这里开始。
我需要额外的桌子吗?我必须使用触发器吗?

我已经看到了两种更新服务的技术。 使用第一种技术,在事务中,首先测试该行是否存在,并使用结果来确定是执行插入还是更新。 使用第二种技术,您尝试执行更新并验证更新的记录数(JDBC 为您提供了此信息)。 如果它是零,那么你做一个插入,如果一个,那么你就完成了。

最新更新