我已经在网上搜索了这个简单的例子,但无济于事。我需要在JDBC中针对Oracle数据库运行select
和insert
操作作为Java中的原子单元。JBDC - 在并发线程中自动执行SELECT和INSERT
有效,我需要做到以下几点:从用户
- 选择代码,直到我找到一个未使用(因为用户可以删除有可能在现有的代码范围的中间)
- 插入与可用的代码
这是一个简单的操作正常,但我的应用程序是多线程的,我不知道如何去THI新用户秒。因为同时运行的并发线程可能会尝试并使用相同的代码值插入。
有几个解决方法或黑客,我可以想到做这项工作,但总的来说,我怎样才能锁定表,使此操作原子?我见过的大多数涉及行锁,但因为我没有更新,我不明白这是如何适用的。
为什么不使用“插入选择”的方式。我不知道它是否适合您的需求,因为我不知道表结构。但我认为如果你可以用插入的方式进行选择,那么你的问题就会得到解决。 – Naved 2012-03-06 07:51:09
嗨。我认为这不会起作用。我的表结构基本上是。 ID,代码,名称和说数据是1,1,约翰; 2,2,弗兰克; 4,4,鲍勃所以我想做一个选择发现代码3不使用,然后做一个插入值(5 ,3,Bill)并发多线程可能会得到3作为下一个可用的代码,并且第二个线程在尝试插入时会失败,如果选择和插入不是原子的 – user1251589 2012-03-06 08:12:51