728x90
반응형
[MyBatis] org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] MyBatis 에러
[org.apache.ibatis.binding.BindingException:](org.apache.ibatis.binding.bindingexception:) Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2]
갑자기 잘 쓰던 문법에서 에러가 나타났다.
** BoardMapper.interface **
int registerBoard(String userName, String title,String content);
** BoardMapper.xml **
<insert id="registerBoard">
INSERT INTO Board (userName, title, content)
VALUES (#{userName}, #{title}, #{content})
</insert>
위와 같이 사용하고 있었는데, 갑자기 파라미터를 제대로 인식하지 못하는 에러가 발생하였다.
구글링 결과 @Param()
이라는 iBatis
의 Annotation을 파라미터에 명시적으로 달아주면 MyBatis가 파라미터를 제대로 인식 할 수 있다고 한다.
바꾼 후
** BoardMapper.interface **
int registerBoard(@Param("userName") String userName, @Param("title") String title, @Param("content") String content);
** BoardMapper.xml **
<insert id="registerBoard">
INSERT INTO Board (userName, title, content)
VALUES (#{userName}, #{title}, #{content})
</insert>
이렇게 변경 후 문제 없이 작동 하였다.
그런데 모든 Mapper의 파라미터에 해당 에노테이션을 달아야 되는건지는 아직 잘 모르겠다...
728x90
반응형
'1.프로그래밍 > DB' 카테고리의 다른 글
[DataSource] DataSource 설정 정리 (0) | 2023.03.23 |
---|---|
[Redis] WRONGTYPE Operation against a key holding the wrong kind of value (0) | 2023.02.02 |
[DB] Transaction 이란? (2) | 2022.04.01 |
[Mybatis] 생성한 키(PK) 리턴받기 두가지 방법(selectKey, useGeneratedKeys) (0) | 2022.03.30 |
[Mybatis] Mybatis #{}, ${} 의 차이 (Mybatis SQLSyntaxErrorException, Unknown column) (0) | 2022.02.28 |