본문 바로가기
MyBatis

[MyBatis; 마이바티스] jdbcType 종류, NULL 처리

by daddydontsleep 2022. 10. 25.
728x90
728x90

업체에 시스템 이관 작업을 마치고 테스트를 하던 중 NullPointException 이 계속 발생하는 문제에 직면했었습니다.

그래서 NULL 값 대신 빈 공백이 들어가게 처리하기 위해 jdbcType를 사용하였습니다.

 

JdbcType

지원되는 타입 목록에서 설명하는 JDBC 타입
JDBC 타입은 INSERT, UPDATE, DELETE 하는 NULL 입력이 가능한 칼럼에서만 필요하다.
JDBC의 요구사항이지 마이바티스의 요구사항이 아니다.
JDBC로 직접 코딩을 하다보면 NULL이 가능한 값에 이 타입을 지정할 필요가 있을 것이다.

<예시 SQL>

INSERT INTO table_name (col1, col2, col3)
VALUES (#{col1, jdbcType=VARCHAR}, #{col2, jdbcType=VARCHAR}, #{col3, jdbcType=VARCHAR})

 

SQL Server 형식 JDBC 형식 (java.sql.Types) Java 언어 형식
bigint BIGINT long
binary BINARY byte[]
bit BIT boolean
char CHAR String
date DATE java.sql.Date
datetime TIMESTAMP java.sql.Timestamp
datetime2 TIMESTAMP java.sql.Timestamp
datetimeoffset(2) microsoft.sql.Types.DATETIMEOFFSET microsoft.sql.DateTimeOffset
decimal DECIMAL java.math.BigDecimal
float DOUBLE double
image LONGVARBINARY byte[]
int INTEGER int
money DECIMAL java.math.BigDecimal
nchar CHAR String
NCHAR(Java SE 6.0)
ntext LONGVARCHAR String
LONGNVARCHAR(Java SE 6.0)
numeric NUMERIC java.math.BigDecimal
nvarchar VARCHAR String
NVARCHAR(Java SE 6.0)
nvarchar(max) VARCHAR String
NVARCHAR(Java SE 6.0)
real REAL float
smalldatetime TIMESTAMP java.sql.Timestamp
smallint SMALLINT short
smallmoney DECIMAL java.math.BigDecimal
text LONGVARCHAR String
time TIME(1) java.sql.Time(1)
timestamp BINARY byte[]
tinyint TINYINT short
udt VARBINARY byte[]
uniqueidentifier CHAR String
varbinary VARBINARY byte[]
varbinary(max) VARBINARY byte[]
varchar VARCHAR String
varchar(max) VARCHAR String
xml LONGVARCHAR String
LONGNVARCHAR(Java SE 6.0) SQLXML

 

<참고글>

https://mybatis.org/mybatis-3/apidocs/reference/org/apache/ibatis/type/JdbcType.html

 

JdbcType | mybatis

 

mybatis.org

https://itmoon82.tistory.com/23

 

[MyBatis] jdbcType 종류

jdbcType MyBatis로 개발 시 입출력 변수의 javaType이나 jdbcType을 명시할 때 사용합니다. 종류 SQL Server 형식 JDBC 형식 (java.sql.Types) Java 언어 형식 bigint BIGINT long binary BINARY byte[] bit BIT..

itmoon82.tistory.com

 

https://sheerheart.tistory.com/entry/Mybatis-쿼리-파라미터에서-jdbcType

 

Mybatis 쿼리 파라미터에서 jdbcType

Mybatis 쿼리 파리미터 프로퍼티 중에 jdbcType가 있는데 항상 헷갈려서 정리해본다. Mybatis 공식 문서에 이렇게 설명되어 있다. jdbcType : 지원되는 타입 목록에서 설명하는 JDBC 타입. JDBC타입은 insert,

sheerheart.tistory.com

 

728x90
300x250