본문 바로가기

spring/spring

Step03_MyBatis (typeAliases)

 

Configuration

typeAliases를 사용해서 자주 사용하는 type 의 별칭을 등록해 놓고 Mapper xml에서 사용할 수 있다.

<?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>
  	
  	<!-- 자주 사용하는 type 의 별칭을 등록해 놓고 Mapper xml에서 사용할 수 있다. -->
  	<typeAliases>
  		<typeAlias type="com.gura.step03.member.dto.MemberDto" alias="memberDto"/>
  	</typeAliases>
  	
  	<!-- 사용할 Mapper xml 문서 등록하기 -->
  	<mappers>
  		<mapper resource="com/gura/step03/mybatis/MemberMapper.xml"/>
  		<mapper resource="com/gura/step03/mybatis/TodoMapper.xml"/>
  	</mappers>
  </configuration>

 

기존 MemberMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">
   <insert id="insert" parameterType="com.gura.step03.member.dto.MemberDto">
      INSERT INTO member
      (num, name, addr)
      VALUES(member_seq.NEXTVAL, #{name}, #{addr})
   </insert>
   
   <update id="update" parameterType="com.gura.step03.member.dto.MemberDto">
      UPDATE member
      SET name=#{name}, addr=#{addr}
      WHERE num=#{num}
   </update>
   
   <delete id="delete" parameterType="int">
      DELETE FROM member
      WHERE num=#{num}
   </delete>
   
   <!-- resultType="select 된 row 하나를 담을 데이터 type" -->
   <select id="getData" parameterType="int" 
                     resultType="com.gura.step03.member.dto.MemberDto">
      SELECT num, name, addr
      FROM member
      WHERE num=#{num}
   </select>
   
   <select id="getList" resultType="com.gura.step03.member.dto.MemberDto">
      SELECT num, name, addr
      FROM member
      ORDER BY num ASC
   </select>
</mapper>

 

변경된 MemberMapper.xml 

parameterType 를 configuration에서 typeAliases로 등록해둔 것으로 변경

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="member">
   <insert id="insert" parameterType="memberDto">
      INSERT INTO member
      (num, name, addr)
      VALUES(member_seq.NEXTVAL, #{name}, #{addr})
   </insert>
   
   <update id="update" parameterType="memberDto">
      UPDATE member
      SET name=#{name}, addr=#{addr}
      WHERE num=#{num}
   </update>
   
   <delete id="delete" parameterType="int">
      DELETE FROM member
      WHERE num=#{num}
   </delete>
   
   <!-- resultType="select 된 row 하나를 담을 데이터 type" -->
   <select id="getData" parameterType="int" 
                     resultType="memberDto">
      SELECT num, name, addr
      FROM member
      WHERE num=#{num}
   </select>
   
   <select id="getList" resultType="memberDto">
      SELECT num, name, addr
      FROM member
      ORDER BY num ASC
   </select>
</mapper>

'spring > spring' 카테고리의 다른 글

Step03_MyBatis (aspect)  (0) 2022.09.02
스프링 프레임 워크 개념 정리  (0) 2022.09.02
Step03_MyBatis ( @service )  (0) 2022.09.01
Step03_MyBatis (ModelAndView, redirect)  (0) 2022.09.01
Step03_todo list 만들기  (0) 2022.08.31