728x90
반응형
MariaDB에서 테이블 컬럼을 boolean 형식으로 사용하고 싶은 경우,
타입이 boolean이 형식이 아닌 tinyint 형식으로 저장이 됩니다.
문제는 여기서, 프로그래밍으로 이 데이터를 꺼내 Boolean 데이터로 가공하려고 햘 때
발생합니다.
다음 내용을 한 번 보시죠.
// Integer to Boolean
Boolean test = Boolean.valueOf(String.valueOf(testService.get("dataBoolean")));
// testService.get("dataBoolean") <- 이 값은 db에서 가져온 Integer값(1 or 0)
1. "dataBoolean" 컬럼의 타입(길이)이 tinyint(4)이면,
위 예시의 test 값은 무조건 false를 가져와, 원하는 값 도출이 불가능합니다.
( 결과 : 1 -> false, 0 -> false )
참, 아이러니하게도 해당 컬럼의 타입(길이)를 변경해 주면 결과는 달라집니다.
2. "dataBoolean" 컬럼의 타입(길이)이 tinyint(1)이면,
위 예시의 test 값은 true 또는 false로 원하는 값 도출이 가능합니다.
( 결과 : 1 -> true, 0 -> false)
공식 문서 참조 : https://mariadb.com/kb/en/boolean/
BOOLEAN
Synonym for TINYINT(1).
mariadb.com
728x90
'스마트웹앱콘텐츠전문가 > 데이터베이스' 카테고리의 다른 글
[postgresql]대소문자구분없이조회 (0) | 2021.06.14 |
---|---|
[마이바티스] FetchSize (0) | 2021.05.10 |
[MariaDB] 인덱스 삭제(제거) (0) | 2021.02.22 |
[Mybatis] 조회값이 아예 없는 경우 (0) | 2021.02.17 |
[mariaDB]IFNULL (0) | 2021.01.25 |