반응형
먼저 들어가기 앞서 MyBatis는 자바 객체와 SQL 데이터베이스 간의 매핑을 도와주는 ORM(Object-Relational Mapping) 프레임워크입니다. 다들 알고 계셨나요..? 알고 있었겠죠.
int VS Integer
<insert id="intList" resultType = "int">
insert into ...
<!--null 반환시 오류메세지 반환-->
</insert>
<insert id="intList" resultType = "Integer">
insert into ...
<!--null 값 가능-->
</insert>
MyBatis에서 int와 Integer의 차이점은 자바의 기본 데이터 타입과 래퍼 클래스의 차이와 동일합니다.
int는 자바의 기본 데이터 타입 중 하나입니다. int는 32비트 정수 값을 저장하며, null 값을 표현할 수 없습니다.
Integer는 int의 래퍼 클래스로, int 값을 객체로 래핑하여 처리합니다.
Integer 객체는 int 값을 가질 수 있지만, null 값을 가질 수도 있습니다.
Integer는 자바의 객체 타입이므로 null 값을 가질 수 있기 때문에, 데이터베이스의 NULL 값을 표현하거나 값이 없는 상태를 나타내는 데 유용합니다. MyBatis에서는 int와 Integer를 모두 사용할 수 있습니다.
MyBatis의 매개 변수로 사용하는 경우, int는 기본값이 0이고 NULL을 허용하지 않습니다.
Integer는 NULL 값을 허용할 수 있습니다. 따라서 매개 변수로 NULL을 전달해야 하는 경우 Integer를 사용하는 것이 더 편리합니다.
결론은 null값을 반환할 일이 있을 거 같은 쿼리에서는 integer를 resultType으로 사용하면 오류를 반환하지는 않습니다.
그게 정답은 아니라는 거고, 오류로 반환할 때 이런 경우때문이라는 걸 참고하셨으면 좋겠습니다!
반응형
'CODE > CodeKnowledge' 카테고리의 다른 글
[SQL] BULK INSERT (mysql과 oracle 차이점) (0) | 2023.07.24 |
---|---|
젠킨스란 무엇일까? (feat.수동배포 차이점 ) (0) | 2023.07.23 |
[TIP] jar안에 class파일 미리보는 법 (매우 간단함) (0) | 2023.07.15 |
[SQL] selfjoin 셀프조인에 대해 알아보기 (쓰임, 정의, 방법) (0) | 2023.07.13 |
[국비과제] 자바스크립트 이용 회원가입 형식 만들기 (0) | 2023.07.12 |
댓글