繁体   English   中英

如何处理多个servlet请求以更新DB值

[英]How to handle multiple servlet requests to update DB value

我将从客户端获取多个Servlet请求以更新DB中的某些条目。 目前我使用Postgre的hibernate。 我所做的是我读取数据库中的当前值,然后将一个值添加到该值并保存每个请求。 但是,如果两个人同时读取数据库并添加它,它将不计算我想要的数量。 我有一些建议让它“同步”。 但是,如果请求数量变大,某些用户可能会有相当大的延迟。

是否有更快的方法将值更新+1,而无需读取和写入? 如果最佳做法是使用同步,那么如何使其更快(更少的等待时间)?

您可以尝试使用LOCK,请查看: http//www.postgresql.org/docs/8.1/static/sql-lock.html

要在一个查询中执行所有操作(更快),请选中: 在Postgres中增加一个值

您可以使用Spring事务管理(请参阅此处的文档)。

Spring配置:

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"/>
</bean>

用@Transactional注释你的hibernate读写方法

@Transactional(value = "txManager" ...
public int incrementValue(){

然后根据您的需要定义隔离属性。 查看TransactionDefinition以获取不同的隔离选项。 例如, TransactionDefinition.ISOLATION_READ_COMMITTED

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM