MySQL 데이터 타입과 Java 데이터 타입 비교/매칭

  안녕하세요? 혼살입니다. 블로그에 정말 오랜만에 글을 씁니다. 일하고 겜하고 일하고 겜하고 집에 박혀서 매일 똑같은 일상을 보내다 보니 블로그에 글을 오랫동안 안 쓰고 있었네요. 대부분 근황은 유튜브 동영상으로 대체하다 보니 더욱 더 그랬던 것 같습니다.

  하지만 이번엔 영상보다 글로 남기는 게 더 유익할 것 같아 간만에 글을 쓰게 되었습니다. 바로 MySQL Data Types & Java Data Types 매칭! 현재 진행중인 외주 작업 중 SET 타입을 Java에선 어떻게 처리하나 찾아보다가 잘 정리된 블로그 글을 발견해 나중에 손쉽게 찾기 위해 제 블로그에도 씁니다. 위 링크에 들어가시면 테이블로 잘 정리돼 있으니 한 번 들어가 보시는것도 괜찮겠네요.

왼쪽은 MySQL, 오른쪽은 Java의 데이터 타입입니다.

BIT <-> Boolean
TINYINT <-> Integer
BOOL/BOOLEAN (TINYINT(1)) <-> Integer
SMALLINT <-> Unsigned 상관없이 Integer
MEDIUMINT <-> Integer, Unsinged라면 Long
INT <-> Integer, Unsigned라면 Long
BIGINT <-> Long, Unsigned라면 java.math.BigInteger
FLOAT <-> Float
DOUBLE <-> Double
DECIMAL <-> java.math.BigDecimal
DATE <-> java.sql.Date
DATETIME <-> java.sql.Timestamp
TIMESTAMP <-> java.sql.Timestamp
TIME <-> java.sql.Timestamp
YEAR <-> yearsIsDateType이 설정됐다면 java.sql.Date, 아니라면 Short
CHAR <-> 컬럼이 Binary로 설정되지 않았다면 String, 돼 있다면 byte[]
VARCHAR <-> CHAR와 동일
BINARY <-> byte[]
VARBINARY <-> byte[]
TINYBLOB <-> byte[]
TINYTEXT <-> String
BLOB <-> byte[]
TEXT <-> String
MEDIUMBLOB <-> byte[]
MEDIUMTEXT <-> String
LONGBLOB <-> byte[]
LONGTEXT <-> String
ENUM <-> String
SET <-> String

사용해보니 ENUM, SET은 지정된 값이 스트링으로 반환되었습니다. 예를 들어 MySQL 컬럼이 SET('남','여')로 지정되었고, 레코드 값이 '남'이라면 자바에서 String "남"을 반환합니다.

참고가 되었길 바라며 즐코하시길.

댓글

이 블로그의 인기 게시물

C# 남아도는 메모리에도 불구하고 OutOfMemoryException이 발생한다면?

USB를 뒤는 괜찮은데 앞에 꽂으면 인식이 힘들다?