개발

[개발] Mybatis 통해 Mariadb Procedure 호출 에러

bbugge 2020. 4. 18. 12:02

// 주의!! > MySQL 또는 Mariadb 사용 시 Procedure로 질의하면 Query Cache가 되지 않기 때문에 Procedure 사용을 가급적 피해야한다. 

 

// 에러내용

invalid callable syntax. must be like {[?=]call <procedure/function name>[(?,?, ...)]} 
 but was : { 
        CALL INSERT_MEM_SPOT(?, 
        ?, 
        ?, 
        ?, 
        ?, 
        ?, 
        @RESULT); 
        }

// 세미콜론 없애야 하는 듯?

 

 

// 아래 내용을 요약하자면 mariadb jdbc 연결할 때 mariadb-java-client를 사용하면 프로시저를 사용할 수 없음.

따라서 mysql-connector-java를 사용하면 된다고 함.

그러나 사용할 때 주의할 점은  jdbc url에 serverTimezone=UTC을 붙여야하며,

mysql-connector 일정 버전 이상에서는 드라이버 이름이 변경됨

   이전: com.mysql.jdbc.Driver -> 변경: com.mysql.cj.jdbc.Driver

https://devbrain.tistory.com/82

 

mybatis 에서 procedure call 호출

마이바티스 sql mapper에서 procedure를 호출하기 위해 구글링하여 나온 아래 코드를 넣어 실행하였다. { call sp_test_procedure( #{p..

devbrain.tistory.com

 

 

// 위와 같은 방법을 시도해봤지만 invocationTargetException이 뜸. 그래서 mariadb-java-client의 버전을 가장 최신버전 (2020-04-18 기준 version 2.6.0)을 사용해 해결 

그래도 안된다면 권한 문제일 확률이 크다.

'개발' 카테고리의 다른 글

[개발] MRT (Monitoring_tool for Altibase)  (0) 2024.01.18
[개발] LINUX bash facility command  (0) 2020.08.20
[개발] LINUX bash 문자열 반복문  (0) 2020.08.20