[Error] org.apache.ibatis.binding.BindingException

yihyun·2024년 10월 1일

에러 ❌

목록 보기
1/7

org.apache.ibatis.binding.BindingException

는 MyBatis 에서 Mapper 인터페이스 메서드가 잘못된 반환 타입을가지고 있을때 발생한다.

MyBatis는 Mapper 메서드에서 지정된 SQL 쿼리를 실행한 후, 결과를 해당 메서드의 반환 타입으로 자동으로 매핑해주는데, INSERT, UPDATE, DELETE와 같은 DML 쿼리에서는 기본적으로 정수 타입(int), 즉 영향을 받은 레코드의 개수를 반환합니다. 하지만 여기서 반환 타입으로 BoardDTO 객체가 설정되어 있어서 오류가 발생한 것이다.

발생 예시 코드
DAO
BoardDTO write(BoardDTO boardDto);

mapper

	<insert 
		useGeneratedKeys="true"
		keyColumn="idx"
		keyProperty="idx"
	id="write" parameterType="kr.co.gudi.dto.BoardDTO">
		INSERT INTO board(user_name, subject, content) 
			VALUES(#{user_name}, #{subject}, #{content})
	</insert>

수정
DAO
int write(BoardDTO boardDto);

※ 참고
service 코드

	public int write(MultipartFile[] files, BoardDTO boardDto) {
		
		int row = board_dao.write(boardDto);
		BoardDTO dto = new BoardDTO();
		int idx = dto.getIdx();
		
		logger.info("insert 된 행 수 : "+row);
		logger.info("받아온 idx : "+idx);
		
		if(idx > 0) {
			fileSave(files, idx);
		}
		
		return idx;
	}
profile
개발자가 되어보자

0개의 댓글