15강(Mybatis TypeHandler 사용)

2023. 1. 28. 20:49개발/spring2

기존에 만든 T_BOARD 테이블에 컬럼 추가 DEL_YN이라고 컬럼 이름 정하고 유형은 CHAR 선택. 그리고 길이 1 선택.

default 값은 N으로 설정함. 코멘트는 삭제여부.

 

 

 

게시판 리스트 쿼리에 resultType 지정된 클래스를 F3 눌러주고 private boolean delYn 추가.

 

 

리스트 SELECT 쿼리에도 B.DEL_YN이라고 컬럼 추가

 

 

Configuration패키지에 mybatis.typehandler 새로운 패키지 추가. 그리고 새로운 클래스 추가. StringValueBooleanTypeHandler

Implements TypeHandler<boolean> 넣어주기

 

 

 

오류나는 메소드를 만들어준다. ps.setString 이용하여 값을 다시 set 한다. Boolean 값을 String으로 변환 해줘야 하는데, commons-lang3의 BooleanUtils 클래스를 사용하면 된다.

 

요렇게 하면 boolean이 Y,N으로 바뀐다.

 

getResult에는 BooleanUtils.toBoolean 사용하면 된다. toBoolean String 허용하는 메소드를 클릭해주고 rs.getString메소드에 columnName 지정해줌. 그러면 자동으로 Y, N값이 boolean으로 바뀐다.

 

이러면 TypeHandler클래스 완성.

 

Board.xml에 resultMap을 선언함. resultType을 복사하고 resultMap type에 붙여넣기 한다. Id getListResultMap

 

 

 

resultType을 resultMap으로 바꿔주고 resultMap에 getListResultMap을 지정해준다(저장 안했다가 15 내용 전체가 날아갔다. 저장을 생활화 하자!!!!!!)

 

 

result column DEL_YN 넣어주고 프로퍼티는 Board 클래스의 delYn 넣어줍니다. typeHandler StringValueBooleanTypeHandelr 지정해주자.

 

 

Save에도 delYn을 추가해보자.

 

 

 

이렇게 추가 해주고 돌려보자

 

 

돌아간다.