Web/스프링

[mybatis] ibatis -> mybatis 트랜잭션 관리

벨포트조던 2019. 11. 20.
반응형

우선 말할건, 트랜잭션관리가 정확한 정답이 없다. 내가 찾아본 결과로는.. 확실한 답이 있다면, 찾으면 댓글 바랍니다.

 

 

조건 

ibatis ,spring 3.0  을 mybatis springboot로 변경 (spring버전은 그렇게 중요하지 않다. )

mybatis에서 트랜잭션 유지, 설정

 

ibatis에서 mybatis 로 문법이 조금 바뀐거같긴하지만, 생각보다 이게 까다로움. 별별곳에서 문제가 생김. 뭐 그건 하다보면 빡치니까 알테니 트랜잭션만 이야기하겠다.

 

 

과정

ibatis 는 

1
2
3
4
5
6
7
    try {
      sqlMapClient.startTransaction();
      sqlMapClient.update("insertAccountViaParameterMap", account);
      sqlMapClient.commitTransaction();
    } finally {
      sqlMapClient.endTransaction();
    }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

이런식이 가능하다. 누가봐도 딱 뭔소린지 안다.

 

근데 mybatis는 이게 안먹힘.

 

 

https://emflant.tistory.com/43

여기나 이런글들 보고, 해봤는데, 설정이 잘못됬는지 나는 잘 안됬다. ( 나중에 다시 테스트해보자 )

 

https://blog.naver.com/2feelus/220616977338

이 글을 참고한건 아니지만, 처리방식을 3가지로 보여준다. 가볍게 보기 좋음

 

 

어찌저찌 됬건 내가 사용하는 방식은 @Transactional 사용하는거다. 이것도 AOP 라고 책에서 봤음.

 

내경우엔 Service에서 트랜잭션이 필요한 부분을 따로 코드로 묶어서 처리했다.

이게 익숙해서 그런지 나는 이게 젤 쉽다고 느꼈음.

 

기존에 ibatis로 되어있어서, start ,end가 있기 때문에 똑같이 쓰려고 mybatis에도 똑같이 동작하는걸 찾아봤는데, 작동을 잘 안했다. 그래서 익숙한 방식인 @Transactional를 사용했다.

 

사용방법은 이건 금방 나올테니 스스로 찾아봅시다.

 

 

 

https://barunmo.blogspot.com/2013/06/mybatis.html

-자세한 설명이 있는 글

보다가 너무 길어서 넘겼는데, 잘 정리해둔 글이다

반응형

댓글