1

我正在开发一个代码,其中有一组插入和选择语句。这是一个使用 servlet/jsp 的基于 Web 的应用程序。我如何确保一次一个请求访问此方法。

我应该使用:

  • 同步方法或同步块
  • 或静态同步方法。
public void insertDetails()
{
    //Select Statement

    If  //result of Select statment == "X"
        insert1
    else
        insert 2
}
4

3 回答 3

9

通常,使用同步来控制数据库访问意味着“你做错了”。数据库有各种内部机制来控制并发访问,所以最好改用它们。除其他原因外,在您的 jvm 中使用机制可能会限制未来扩展或拥有多个应用程序的能力(即有 2 个 jvm 使用同一数据库服务器的数据)。

于 2012-07-23T19:02:37.200 回答
0

如果我是你,我会尝试修改我的插入语句以处理if-else条件,而不是使用同步块。

正如 jthalborn 所指出的,这将确保正确利用数据库的内部并发控制机制,并将您的逻辑与必须处理同步场景分离。

于 2012-07-23T19:32:51.233 回答
0

您无需担心提交同步,因为 DB 引擎旨在处理该问题。

于 2012-08-17T10:18:56.617 回答