typeAliases
ํด๋์ค์ ๋ํ ๋ณ์นญ์ ์ ์ํ์ฌ XML์์ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
typeAliases ์ค์ ๋ฐฉ๋ฒ
mybatis ์์ Java ํด๋์ค ์ ์ฒด์ด๋ฆ(ํจํค์ง๋ช
.ํด๋์ค๋ช
)์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก ์ ์ฉํ ์ ์์ต๋๋ค.
โข
mybatis-config.xml
โข
@Alias ์ด๋
ธํ
์ด์
mybatis-config.xml
โข
์ค์ ํ์ผ ์์น
โฆ
~/src/main/resources
โช
mybatis-config.xml
โข
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- ์ค์ -->
<settings>
<!-- ์ธ๋์ค์ฝ์ด ์ผ์ด์ค์ธ ์ปฌ๋ผ์ ์นด๋ฉ ์ผ์ด์ค๋ก ๋ณํํ๋ ์ค์ -->
<!-- board_no - boardNo -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- ํ์
๋ณ์นญ ์ค์ -->
<typeAliases>
<!--
โญ typeAlias : ๋ณ์นญ ์ค์
- alias : ๋ณ์นญ
- type : ๋ณ์นญ์ ์ฌ์ฉํ ํด๋์ค ๊ฒฝ๋ก
-->
<typeAlias alias="User" type="com.aloha.mybatis.dto.User"/>
<!--
โญ package : ํจํค์ง ๊ฒฝ๋ก ์ง์
- name : ํจํค์ง ๊ฒฝ๋ก
-->
<package name="com.aloha.mybatis.dto"/>
</typeAliases>
</configuration>
XML
๋ณต์ฌ
โข
application.properties
# Mybatis ์ค์
# Mybatis ์ค์ ๊ฒฝ๋ก : ~/resources/mybatis-config.xml
mybatis.config-location=classpath:mybatis-config.xml
# Mybatis ๋งคํผ ํ์ผ ๊ฒฝ๋ก : ~/๋ฉ์ธํจํค์ง/mapper/**Mapper.xml
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
Java
๋ณต์ฌ
ํ์
๋ณ์นญ package ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ฉด, ํด๋น ํจํค์ง ์๋์ ๋ชจ๋ ํด๋์ค๋ค์ ํด๋์ค ์ด๋ฆ๋ง์ผ๋ก type ์ ์ง์ ํ ์ ์์ต๋๋ค.
โข
typeAliases - package ์ค์
<resultMap id="๋งตid" type="ํจํค์ง๋ช
.ํด๋์ค๋ช
">
</resultMap>
XML
๋ณต์ฌ
โข
typeAliases - package ์ค์
<!-- <resultMap id="๋งตid" type="ํจํค์ง๋ช
.ํด๋์ค๋ช
"> -->
<resultMap id="๋งตid" type="ํด๋์ค๋ช
">
</resultMap>
XML
๋ณต์ฌ
mybatis-config.xml ๋ง์ด๋ฐํฐ์ค ์ค์ ํ์ผ์ ๋ฐ๋ก ๋ง๋ค์ง ์๊ณ ,
application.properties ์ ์์ฑ์ผ๋ก ๋ฐ๋ก ์ ์ฉํ ์๋ ์์ต๋๋ค.
# Mybatis ์ค์
# ์ปฌ๋ผ๋ช
์ ๋ณ์๋ช
์ผ๋ก ์๋๋งคํ : board_no โก boardNo
mybatis.configuration.map-underscore-to-camel-case=true
# resultType ์์ฑ์์ dto ๊ฐ์ฒด (ํจํค์ง.ํด๋์ค๋ช
) โก (ํด๋์ค๋ช
)
mybatis.type-aliases-package=com.aloha.mybatis.dto
# Mybatis ๋งคํผ ํ์ผ ๊ฒฝ๋ก : ~/๋ฉ์ธํจํค์ง/mapper/**Mapper.xml
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
Java
๋ณต์ฌ
@Alias ์ด๋ ธํ ์ด์
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋งคํํ ๊ฐ ๊ฐ์ฒด์์, @Alias ์ด๋
ธํ
์ด์
์ผ๋ก ๋ณ์นญ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
package com.aloha.mybaits.dto;
...
@Data
@Alias("Users")
public class Users {
private Long no;
private String username;
private String password;
private String name;
private String email;
private Date createdAt;
private Date updatedAt;
private int enabled;
}
Java
๋ณต์ฌ
โข
@Alias("Users") ์ค์
<!-- โญ typeAliases ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ - ํจํค์ง๋ช
.ํด๋์ค๋ช
-->
<select id="select" resultType="com.aloha.mybatis.dto.Users">
SELECT *
FROM user
WHERE username = #{username}
</select>
XML
๋ณต์ฌ
โข
@Alias("Users") ์ค์
<!-- โญ typeAliases ์ค์ ํ ๊ฒฝ์ฐ - ๋ณ์นญ (Users) -->
<select id="select" resultType="Users">
SELECT *
FROM user
WHERE username = #{username}
</select>
XML
๋ณต์ฌ