데이터 베이스 MySQL 튜토리얼 mybatis并发问题解决,参考hibernate

mybatis并发问题解决,参考hibernate

Jun 07, 2016 pm 04:10 PM
hibernate mybatis 경쟁 상대 해결하다 질문

银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户减去 50元,A先提交,B后提交。 最后实际账户余额为1000-50=950元,但本该为 1000100-50=1050。这就是典型的并发

银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户减去 50元,A先提交,B后提交。 最后实际账户余额为1000-50=950元,但本该为 1000+100-50=1050。这就是典型的并发问题

一个简单的解决办法:更新的时候给版本号字段加上 1,然后 UPDATE 会返回一个更新结果的行数,通过这个行数去判断。

update account set price = #price #,version=version+1

where id=#id# and version=#vsersion#

如果更新执行返回的数量是 0 表示产生并发修改了,需要重新获得最新的数据后再进行更新操作。


Hibernate、JPA 等 ORM 框架或者实现,是使用版本号,再判断 UPDATE 后返回的数值,如果这个值小于 1 时则抛出乐观锁并发修改异常。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Black Shark 휴대폰이 켜지지 않는 문제를 해결하는 방법을 알려주는 5가지 팁! Black Shark 휴대폰이 켜지지 않는 문제를 해결하는 방법을 알려주는 5가지 팁! Mar 24, 2024 pm 12:27 PM

Black Shark 휴대폰이 켜지지 않는 문제를 해결하는 방법을 알려주는 5가지 팁!

Java 기능의 동시성과 멀티스레딩이 어떻게 성능을 향상시킬 수 있습니까? Java 기능의 동시성과 멀티스레딩이 어떻게 성능을 향상시킬 수 있습니까? Apr 26, 2024 pm 04:15 PM

Java 기능의 동시성과 멀티스레딩이 어떻게 성능을 향상시킬 수 있습니까?

Golang API 디자인에 동시성 및 코루틴 적용 Golang API 디자인에 동시성 및 코루틴 적용 May 07, 2024 pm 06:51 PM

Golang API 디자인에 동시성 및 코루틴 적용

간단한 단계: VSCode의 중국어 인터페이스를 표시할 수 없는 문제를 해결합니다. 간단한 단계: VSCode의 중국어 인터페이스를 표시할 수 없는 문제를 해결합니다. Mar 25, 2024 am 11:57 AM

간단한 단계: VSCode의 중국어 인터페이스를 표시할 수 없는 문제를 해결합니다.

Win8 컴퓨터에서 비밀번호를 잊어버린 경우 어떻게 해야 합니까? 쉬운 솔루션! Win8 컴퓨터에서 비밀번호를 잊어버린 경우 어떻게 해야 합니까? 쉬운 솔루션! Mar 27, 2024 pm 05:12 PM

Win8 컴퓨터에서 비밀번호를 잊어버린 경우 어떻게 해야 합니까? 쉬운 솔루션!

PHP 다중 스레드 함수의 동시성 문제 해결 PHP 다중 스레드 함수의 동시성 문제 해결 May 01, 2024 pm 09:45 PM

PHP 다중 스레드 함수의 동시성 문제 해결

단위 테스트 Go 동시 기능 가이드 단위 테스트 Go 동시 기능 가이드 May 03, 2024 am 10:54 AM

단위 테스트 Go 동시 기능 가이드

Java 함수 라이브러리에서 일반적으로 사용되는 동시성 도구는 무엇입니까? Java 함수 라이브러리에서 일반적으로 사용되는 동시성 도구는 무엇입니까? Apr 30, 2024 pm 01:39 PM

Java 함수 라이브러리에서 일반적으로 사용되는 동시성 도구는 무엇입니까?

See all articles