1
스프링 트랜잭션의 본질은 실제로 데이터베이스의 거래 지원입니다. 데이터베이스 트랜잭션 지원이 없으면 Spring은 트랜잭션 기능을 제공 할 수 없습니다. 결국, 트랜잭션 개방을 완료하고, 커밋 및 롤백하는 것을 위해 데이터베이스 연결이라고합니다.
2. 모듈
따라서 Spring Transactions의 경우 몇 가지 필수 모듈은 데이터 소스, 거래 관리자 및 거래 프로그래밍입니다.
3. XML 구성
<!-트랜잭션 관리자-> <bean id = "SpringTransactionManager"> <속성 이름 = "dataSource"ref = "dataSource" /> < /bean> <!-데이터 소스-> <bean id = "dataSource"> <property name = "driverclassName"value = "com.mysql.jdbc.driver" /> <property name = "url" value = "value ="jdbc : mysql : //127.0.0.1 : 3306 /test? test? charac SQLMAPCONFIG 총 구성 파일을 지정하십시오. 맞춤형 환경은 스프링 컨테이너에서 효과적이지 않습니다-> <!-엔티티 클래스 매핑 파일을 지정합니다. 하위 포장 아래에 지정된 패키지 및 모든 구성 파일을 동시에 지정할 수 있습니다. 매퍼와 configlocation이 하나 있습니다. 엔티티 클래스에 별명을 지정 해야하는 경우 configlocation 속성을 지정한 다음 Mapper를 사용하여 MyBatis Total 구성 파일에 엔티티 클래스 매핑 파일을 소개 할 수 있습니다.> <!-<propertlocation "value ="classpath : fwportal/beans/dbconfig/mybatis.xml "/>-<property name =" "맵퍼로드". value = "classpath : mapper/*. xml"/> </bean> <!-dao 인터페이스를 bean-> <ean> <속성 이름 = "basepackage"value = "transaction.dao"/> </bean
4. 트랜잭션 프로그래밍
@test public void testdelete ()는 예외 {ApplicationContext context = new ClassPathXmlApplicationContext ( "mysqlTransaction.xml"); DataSourCetransactionManager SpringTransactionManager = (DataSourCetransactionManager) context.getbean ( "SpringTransactionManager"); defaultTransactionDefinition (); def.setPropagationBehavior (transactionDefinition.Propagation_Required); // 트랜잭션 트랜잭션을 열어야합니다. TransactionStatus 상태 = SpringTransactionManager.getTransaction (DEF); 최종 학생 DAO = (StudentDao) Context.getBean ( "StudentDao"; ex) {SpringTransactionManager.Rollback (상태); // 트랜잭션 롤백 던지기 EX;} SpringTransactionManager.commit (상태); // 트랜잭션 커밋}5. 요약
위의 것은 Mybatis와 Spring을 사용하여 거래 작업을 완료하는 간단한 사례입니다. 데이터베이스 트랜잭션 격리 수준을 구성 할 수 있으며 MySQL의 데이터베이스 격리 수준은 연결 차원에 있습니다.
트랜잭션의 시간 초과 시간을 설정할 수도 있습니다. 즉, 타임 아웃 트랜잭션은 자동으로 롤백됩니다.
위의 내용은 Mybatis 오프닝 스프링 트랜잭션 코드 분석에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!