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