오라클에서 COUNT를 사용하면 해당 컬럼의 데이터 타입은 bigdecimal로 리턴된다. 그렇게 되면 해당 값으로 컨트롤러 단에서 int 값과 바로 비교할 수 없게 된다. 이 경우 우선 bigdecimal의 int 값을 구해서 비교를 해주면 해결된다.
사용 함수: intValue();
예시,
1
2
3
|
testVo vo = new TestVo();
tmp = vo.getCnt();
|
cs |
데이터 세트 testVo에 cnt라는 bigdecimal 변수가 있다고 가정, 이 값이 int 형인 0보다 큰지 비교하고 싶은 경우. cnt의 int 값을 구해야 된다.
아래 예제를 보면 첫 번째 if 조건문에서는 타입이 일치하지 않아 오류가 발생하며, 두 번째 if 조건문의 경우 bigdecimal을 int로 변환하였기 때문에 오류가 발생하지 않는다.
1
2
3
4
5
6
7
8
|
if(vo.getCnt() > 0){
// 데이터 타입이 서로 일치하지 않아 오류가 발생한다.
}
// cnt의 데이터 타입을 바꿔주면 해결!
if(vo.getCnt().intValue() > 0){
// 데이터 타입이 서로 일치하지 않아 오류가 발생한다.
}
|
cs |
'[개발] Programming > Java' 카테고리의 다른 글
자바 현재 날짜, 시간 구하고 형식 지정 (getInstance, Date, currentTimeMillis) 하는 방법 (2) | 2019.12.29 |
---|---|
자바 Cannot invoke compareTo(int) on the primitive type int (0) | 2019.07.11 |
자바 문자열 비교 함수 compare(), compareTo() (0) | 2018.11.09 |
GC overhead limit exceeded, String 대신 StringBuilder 사용 등 해결 방법 (0) | 2018.11.09 |
자바, 클라이언트 정보 조회 (IP, 에이전트, 브라우저, OS 정보) (0) | 2018.11.09 |
댓글