MyBatis

Mybatis, 테이블 연동과 기본적인 DML 조작

Jungsoomin :) 2020. 7. 18. 19:33

Junit으로 테스트를 해보면서 mapper 파일을 이리저리 조작해보면서 기본적 DML 조작을 성공시켰다.

 

기록으로 남겨두어야, 까먹지 않을거라고 생각한다.

 

Mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
  <mapper namespace="com.soomin.dao.MemberDAO">
  <resultMap type="memberVO" id="RmemberVO">
  	<result column="id" property="id" />
  	<result column="email" property="email" />
  	<result column="password" property="password" />
  	 <result column="name" property="name"/> 
  	<result column="regdate" property="regdate"  />
  </resultMap>
  	<select id="selectMemberList" resultMap="RmemberVO" resultType="memberVO" >
  		SELECT * FROM MEMBER
  	</select>
  	
  	<insert id="insertMember" parameterType="memberVO">
  		INSERT INTO MEMBER (EMAIL,PASSWORD,NAME,REGDATE) VALUES(#{email}, #{password}, #{name}, #{regdate})
  	</insert>
  	
  	<select id="findMember" parameterType="java.lang.String" resultMap="RmemberVO" resultType="memberVO">
  		SELECT * FROM MEMBER WHERE EMAIL =#{email}
  	</select>
  	
  	<delete id="deleteMember" parameterType="java.lang.String">
  		DELETE FROM MEMBER WHERE EMAIL=#{delete}
  	</delete>
  	
  </mapper>

MemberDAO

package com.soomin.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.soomin.vo.MemberVO;

@Mapper
public interface MemberDAO {
	List<MemberVO> selectMemberList();

	void insertMember(MemberVO id);

	void deleteMember(String delete);

	MemberVO findMember(String email);

}

Test클래스

package com.soomin.test;

import java.time.LocalDateTime;
import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import com.soomin.config.ContextConfig;
import com.soomin.dao.MemberDAO;
import com.soomin.vo.MemberVO;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = { ContextConfig.class })
public class TestMyBatis {

	@Autowired
	private MemberDAO memberDao;

	@Test
	public void memberDaoTest() {
		System.out.println("\n MemberDAO 의존 주입 여부 >>>>> " + memberDao + "\n");
		try {
			List<MemberVO> list = memberDao.selectMemberList();
			list.forEach(m -> System.out.println(m.toString()));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

//	@Test 
	public void insertMemberTest() {
		MemberVO m = new MemberVO();
		m.setId(3L);
		m.setEmail("madvirus@mad.net");
		m.setPassword("7890");
		m.setName("최범균");
		m.setRegdate(LocalDateTime.now());

		System.out.println("\n현재시각 >>>>> " + LocalDateTime.now() + "\n");

		try {
			memberDao.insertMember(m);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

//	@Test
	public void findMemberTest() {
		try {
			MemberVO member1 = memberDao.findMember("madvirus@mad.net");
			System.out.println(member1);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void deleteMemberTest() {
		try {
			memberDao.deleteMember("madvirus@mad.net");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

 

이제, Mybatis를 가지고 예제를 타이핑할 것이다. 아주 기초적인 부분을 완료했으나, 이제 퍼시스턴스 프레임워크를 가지고 스프링 예제를 만들어 볼 수 있게 되었다는 생각에 기쁨이 스민다.