티스토리 뷰

반응형

Mybatis를 사용하면서 하나의 statement에서 여러 테이블에 접근하여 insert나 update를 해야 하는 경우가 있다. Mybatis를 어느정도 사용해보았다면 하나의 <insert> 또는 <update>에 여러개의 insert 혹은 update쿼리를 적으면 동작할 것이라고 생각할 수 있다.

하지만 실제로 저렇게 하면 문법오류를 계속해서 발생 시킨다. 왜그럴까?

그것은 mysql jdbc 프로토콜에의 파라미터 값으로 몇가지 설정을 할 수 있는데 그중에 allowMultiQueries 값이 있다. 이것은 기본적으로 설정을 하지 않으면 false값으로 되어 있어서 한번에 다중 쿼리를 처리 하지 못하도록 하고 있다. 이값을 true로 지정 해주면 문법 오류 없이 제대로 동작하는 것을 확인 할 수 있다. 

ex) achieve.db.url=jdbc:mysql://localhost:3306/schemaName?allowMultiQueries=true 

그냥 URL파라미터만 넘겨 주면 동작 하므로 별다른 설명은 필요 없어 보인다.

나는 이걸 몰라서... 좀 헤맷다...ㅎㅎ

대표적인 Oracle과 MS-SQL의 경우 URL파라미터 형식이 아니다.

Oracle의 경우 Begin ~ end문법을 MS-SQL의 경우 GO라는 문법을 사용한다. 


반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함