[MyBatis] update할때 컬럼명 바꿀 수 없을까?
😫 너무 비효율적이야!
동일한 테이블에서 컬럼명에 따라 값이 달라지는 update 구문을 만들고 싶었다.
물론 컬럼명마다 update구문을 만들 수 있지만 동일테이블인데 그건 너무 비효율적이다.
그래서 단순하게 아래 쿼리를 작성한 뒤 String값 2개 name과 수정할이름
을 넘겨주었다.
1 | <update id="updateUserOneByOne" parameterType="String"> |
그 결과는 아래처럼 오류가 발생했다. name을 컬럼이 아닌 String으로 받아들여졌기때문에 생긴 오류였다.
1 | java.sql.SQLSyntaxErrorException: (conn=9442) You have an error in your SQL syntax; |
이를 어떻게 해결할 수 있을까?
😎Mybatis 컬럼명 동적쿼리
이를 조금 고급스럽게 표현하면 Mybatis 동적쿼리라고 부른다.#
에서 $
로 바꿔줬을뿐인데 정상작동한다!
1 | <update id="updateUserOneByOne" parameterType="String"> |
정리
${}
: 파라미터값 그대로 입력#{}
: 파라미터값이 ‘ ‘으로 감싸져서 문자열로 입력