spring+mybatis 사무의 서비스 층에서 사무를 설정하는 방법
첫 번째 문제는 실수였다.물론 다오층의 사물은 사실 모두가 배치되어 있다.이건 할 말 없어요.
id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
name="dataSource" ref="dataSource" />
관건은 사실상dao층은 간단한 삭제 검사일 뿐이고 실제 업무의 한 인터페이스는 삭제 검사의 하나가 아니라 A 인터페이스의 삭제가 B 인터페이스에 추가될 수 있다는 것이다.이때 앞의 설정은 A인터페이스가 성공할 때의 업무만 보장할 수 있고 B인터페이스가 실패하면 A인터페이스가 굴러가지 않습니다.상기 설정은 하나의dao조작사무만 보장할 수 있지만 실제적으로 이렇게 간단한 요구는 불가능하다.
봄의 사무는 두 가지가 있는데 하나는 성명식 사무이고 하나는 프로그래밍식 사무이다.오늘 두 가지 모두 말씀드리겠습니다.
1.먼저 프로그래밍 트랜잭션에 대해 살펴보겠습니다.
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = txManager.getTransaction(def);
try {
userMapper.insertUser(user);
}
catch (MyException ex) {
txManager.rollback(status);
throw ex;
}
txManager.commit(status);
2.다음은 성명식 사무에 대해 말씀드리겠습니다.
프로필에 이 프로필을 추가한 다음, 업무가 필요한 방법 앞에 @Transactional
@Transactional
@Override
public void addGoods(AddGoodsRequest request) {
}
트랜잭션 메모 지원(@Transactional)
상기 두 가지 방법은 서비스 층에서 업무를 설정하는 데 적합하다.
아래의 많은 내용은 mybatis 홈페이지를 참고하십시오.http://www.mybatis.org/spring/zh/transactions.html#programmatic
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.