gpt4 book ai didi

java - JDBC:多个请求时安全行更新

转载 作者:行者123 更新时间:2023-11-29 10:54:18 25 4
gpt4 key购买 nike

我有一个 Java RESTful API,它使用 JDBC 和 ComboPooledDataSource 进行连接池 ( http://www.mchange.com/projects/c3p0/ ),以及一个通过递增字段来更新行的PreparedStatement:

public void update(int messageId) {

String UPDATE_STM = "UPDATE table SET count_field = count_field +1 WHERE id=?";
conn = ConnectionManager.getConnection();
PreparedStatement stm = conn.prepareStatement(UPDATE_STM );
stm.setInt(1, messageId);
stm.executeUpdate();
}

(我省略了 try/catch,ConnectionManager.getConnection() 为我提供了池中的可用连接之一)。如果我的 RESTful 服务同时收到两个或多个 update() 方法请求,我是否可以正确更新计数?如果不是,我应该如何修改代码以避免错误的计数更新?

最佳答案

使用 InnoDB

据我所知,您的 Java 代码是线程安全的,它不会访问或更改任何字段。您只需担心数据库端的UPDATE操作。我假设您正在使用 MySQL,因为您已使用 mysql 标签标记了问题。 MySql DBMS 提供ACID 模型,您需要将数据库引擎设置为InnoDB 才能工作。有关更多详细信息,请参阅此 link .

关于java - JDBC:多个请求时安全行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com