마이바티스(Mybatis)에서 사용되는 JDBC TYPE 모음 입니다.
jdbcType 값은 반드시 대문자로 사용해야합니다!
SQL Server 형식 | JDBC 형식(jdbcType) | Java(JavaType) |
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 |
ntext | LONGVARCHAR | String |
numeric | NUMERIC | java.math.BigDecimal |
nvarchar | VARCHAR | String |
nvarchar(max) | VARCHAR | String |
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 |
위 내용을 토대로 샘플로 만든 resultMap이 추가된 xml 코드 입니다.
column값과 property값을 가급적 일치시켜야 나중에 햇갈리지(?)가 않습니다..^-^;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="내가만든네임스페이스">
<resultMap id="고유아이디" type="내가만든DTO패키지.클래스이름">
<result property="클래스의값1" column="컬럼명1" jdbcType="INTEGER" javaType="int" ></result>
<result property="클래스의값2" column="컬럼명2" jdbcType="DATE" javaType="java.sql.Date" ></result>
<result property="클래스의값3" column="컬럼명3" jdbcType="BLOB" javaType="byte[]" ></result>
</resultMap>
<select id="test" parameterType="java.util.Map" resultMap="고유아이디">
쿼리..
</select>
</mapper>
당연하게도 매핑할 객체(ORM)가 필요합니다.
매핑할 객체는 set과 get 형식의 클래스로 구현하면 됩니다(POJO, Plain Old Java Object)
물론 롬북(Lombok) 라이브러리를 활용하여 만들어도 됩니다.
package 내가만든DTO패키지;
import java.sql.Date;
public class 클래스이름 {
private Integer 클래스의값1;
private Date 클래스의값2;
private byte[] 클래스의값3;
public Integer get클래스의값1() {
return 클래스의값1;
}
public void set클래스의값1(Integer 클래스의값1) {
this.클래스의값1 = 클래스의값1;
}
public Date get클래스의값2() {
return 클래스의값2;
}
public void set클래스의값2(Date 클래스의값2) {
this.클래스의값2 = 클래스의값2;
}
public byte[] get클래스의값3() {
return 클래스의값3;
}
public void set클래스의값3(byte[] 클래스의값3) {
this.클래스의값3 = 클래스의값3;
}
}
만약 매핑과 관련된 오류가 발생 한 다면 resultMap에 사용된 내 set get 객체가(POJO, DTO, VO) 마이바티스(mybatis) 설정에서 해당 객체가 등록되어있는지 확인해야 합니다.
resultMap이 동작 하려면 mybatis 설정에서(configuration) 타입 별칭(typeAliases)을 추가해야 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!--생략...-->
</settings>
<typeAliases>
<typeAlias type="내가만든DTO패키지.클래스이름" alias="고유아이디" />
</typeAliases>
</configuration>
이상으로 간단하게 마이바티스(Mybatis)에서 사용되는 타입(jdbctype)에 대해서 소개하였습니다.
궁금한점 또는 틀린 부분은 언제든 연락주세요! 👻
반응형
'Java(자바) > Java 기본' 카테고리의 다른 글
Java String format 정리(자바 문자 형식 정리) (0) | 2022.11.28 |
---|---|
Java List Map 객체 정렬하기 (0) | 2022.09.05 |
재미있고 어려운 Java의 람다(lambda) (0) | 2022.04.07 |
자바 참조 데이터(Java Array, Java List) 사용간 유의 사항 (0) | 2022.03.21 |
자바로 살펴본 재귀 함수의 동작 방법 - 2 (Java Recursive method with 순열) (2) | 2021.07.28 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글