본문 바로가기

SPRING

mapper.xml 생성하기

이전 포스팅(mybatis-config.xml)을 생성 후 한다는 가정하에 한다.

 

1. src>main>resources 폴더 아래에 mappers혹은 mapper라는 파일을 생성한다. 

2. 해당 파일 아래에 추가 폴더링후 혹은 그냥 ㅇㅇㅇ-mapper.xml 파일을 생성한다.

3. 아래와 같이 작성해준다.

<?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"> //namespace는 이 mapper파일의 class명같은 존재
	<resultMap type="해당 컬럼들이 있는 vo alias" id="resultMap의 이름"> //id는 mapper의 이름과 같아도 사용가능
		<id column="db에 있는 컬럼명" property="vo파일에서 설정한 해당 컬럼의 필드명"/>
		<result column="db에 있는 컬럼명" property="vo파일에서 설정한 해당 컬럼의 필드명" />
        <!-- id와 result의 차이-->
         //id 는 PK라 생각하면 된다. 테이블에서 하나뿐인 PK~
         //만약에 pk가 없으면 id 안넣고 전부 result로 해도됨.
	</resultMap>
    
    //아래는 쿼리문을 작성해주면 된다.
    
	//select문에서 db컬럼명이랑 이 <select>태그 안의 쿼리문의 컬럼명을 동일하게 맞춰주면 resultMap 안써도 됨! 
    //그냥 바로 resultType을 주면 적용이 된다. -->
	<select id="dao에서 부를때 사용됨." resultType="mybatis-config.xml에 만들어놓은 vo alias">
		쿼리문
	</select>

    // 나오는 값이 하나라면 해당 자료형으로 받아도됨
	<select id="" resultType="string">
		
	</select>
	
	//만약 id가 동일한게 여러개면 결과값이 여러개나온다 
    //그럼list로 나오는데 여기서 지정안하고 DAO에서 해결해도 된다.
	<select id="" parameterType="들고들어오는 모양" resultType="결과로 보내는 자료형 타입">
		
	</select>
		
	//파라미터타입은 id에 해당하는 거 하나 혹은 VO에 담아서 가져와도됨 
	//select문은 결과값이 있기때문에 resultType 혹은 resultMap 설정해줘야함
	<select id="searchMember" parameterType="" resultMap="위에 resultMap으로 만들어놓은 ID값"> 
		
	</select>
	
	<insert id="insertMember" parameterType="MemberVO"> 
		INSERT INTO member VALUES (#{member_id},#{member_pwd},#{member_name }) //#{}안에는 VO 필드명 작성하면 됨
	</insert>
</mapper>

 

결과물

<?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">
	<resultMap type="MemberVO" id="MemberMap"> 
		<result column="member_id" property="memberId" />
		<result column="member_pwd" property="memberPwd" />
		<result column="member_name" property="memberName" />
	</resultMap>
    
	<select id="searchMember" parameterType="MemberVO" resultType="MemberVO"> 
		SELECT * FROM member WHERE member_id = #{member_id}
	</select>
	
	<insert id="insertMember" parameterType="MemberVO">
		INSERT INTO member VALUES (#{member_id},#{member_pwd},#{member_name })
	</insert>
    
</mapper>

'SPRING' 카테고리의 다른 글

No converter found for return value of type 에러 발생  (0) 2021.06.15
어노테이션 연결  (0) 2021.06.15
mybatis-config.xml 파일  (0) 2021.06.10
SPRING 프로젝트 생성기본 세팅  (0) 2021.06.09
SPRING 폴더 구조  (0) 2021.06.07