-
Mybatis에서 동적 쿼리 사용을 위해 컬럼명 글자(문자열X) 그대로 넣는 법DataBase/MariaDB & MySQL 2018. 1. 28. 18:17
컬럼 값을 동적으로 만들어 줄 일이 필요했다.
생각 없이 #{column1} = #{parameter1} 을 넣었더니 에러가 떴다.
적당히 String 형태든 문자 그대로 들어가든 알아서 다 처리될 줄 알았는데,
console 에러에서 컬럼명이 문자열(작은 따옴표가 붙어서)로 인식되어 SQL에서 에러가 나는 것이었다.
예를 들어, 이런 식으로 XML파일에 쿼리를 작성했다.
123SELECT *FROM employeeWHERE #{columnParam} = #{param}cs 동적으로 컬럼과 파라미터를 다르게 해서 다른 값을 불러오고 싶었다.
#{columnParam}에 memberId 라는 컬럼을 넣고 그 컬럼에 포함된 param에 해당하는 데이터만 뽑아내고 싶었다.
근데 DB는 memberId로 인식하지 않고 'memberId'라는 문자열로 인식했다.
'memberId' = '20180128' 이런식으로 인식하니 에러가 날 수 밖에....
내가 원하는 건 memberId = '20180128'로 인식하게 만드는 것이다.
Mybatis에서 문자열이 아니라 글자 있는 그대로를 넣고 싶다면 ${ }를 사용하면 글자 그대로 입력된다.
123SELECT *FROM employeeWHERE ${columnParam} = #{param}cs 달러표시를 사용해주면 글자 그대로 memberId = '20180128'로 인식되어 데이터 조회가 된다~~~
'DataBase > MariaDB & MySQL' 카테고리의 다른 글
Transaction과 MySQL의 MyISAM 엔진(JUnit 테스트 중에 깨달은 사실) (0) 2018.04.17 [MySQL] '같지 않다' 조건 연산자 (0) 2018.03.07 [mySQL] 프로시저 만들기(DECLARE, SET, IN, IF, ELSEIF 등) (0) 2018.03.05 MariaDB 접속 방법과 데이터베이스, 사용자 계정 생성 (0) 2017.09.23 MariaDB 설치하는 방법 for Mac (0) 2017.09.23