Spring - Mybatis [IT 국비지원/구디 아카데미/김지훈 강사님]

hooon__dii·2023년 9월 19일
0

Spring

목록 보기
5/5
post-thumbnail

Mybatis

Mybatis는 Java persistence Framework의 하나이다.
XML이나 Annotation을 사용하여 저장 프로시저나 SQL문으로 객체들을 연결 시킨다.
> Persistence - application을 종료후 실행 시 이전에 저장한 데이터를 다시 불러올 수 있는 기술
MyBatis는 DB CRUD를 다루는 클래스 및 설정 파일들을 가지고 있어 자체처리 가능
> CRUD - Create Read Update Delete

Mybatis를 활용하기 위해서는 몇가지 작업을 미리 해주어야 한다

  • pom.xml 라이브러리 추가
    ( spring-jdbc.jar / mybatis.jar / mybatis-spring.jar )
  • servlet-context.xml
    DB접속 정보와 Mapper 설정, SqlSessionTemplate사용을 위한 설정 추가
  • Mapper
    SQL을 표현한 Mapper.xml과 이를 연결 해 줄 Interface를 구현
<?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"
>
<!-- ** I.O.C ** : DB접속, Query 실행, 자원반납, resultSet 생성 등이 자동으로 된다 -->
<!-- ** D.I ** : 작업에 필요한 내용을 xml에 등록(bean 등록)해 놓으면 필요한 곳에서 사용한다 -->
<!-- 변경사항이 생기면 xml의 내용만 수정하면 된다 -->

<!-- mapper : query문을 저장하고 있는 xml -->
<!-- namespace : 어떤 Interface와 연결 되는지 명시-->
<mapper namespace="kr.co.gudi.dao.MemberDAO">
	<!-- join : insert -->
	<!-- id - 연결할 추상메서드 -->
	<!-- parameter가 하나로 뭉쳐서 왔을경우? -->
	<!-- parameterType을 쓸 경우는 이름을 사용한다. -->
	<insert id="join" parameterType="hashmap">
		INSERT INTO member(id, pw, name, age, gender, email) 
			VALUES(#{id}, #{pw}, #{name}, #{age}, #{gender}, #{email})
	</insert>
	
	<!-- login : select -->
	<!-- select는 resultType으로 반환할 타입을 지정해 줘야 한다. -->
	<select id="login" resultType="String">
		SELECT id FROM member WHERE id=#{param1} AND pw =#{param2}
	</select>
	
	<!-- list : select -->
	<!-- resultType이 사용자가 만든 class일 경우 전체 경로를 다 명시해주어야 한다 -->
	<select id="list" resultType="kr.co.gudi.dto.MemberDTO">
		SELECT id, name, gender FROM member
	</select>
	
	<!-- delete : delete -->
	<delete id="del">
		DELETE FROM member WHERE id = #{param1}
	</delete>	
	
	<!-- detail : select -->
	<select id="detail" resultType="kr.co.gudi.dto.MemberDTO">
		SELECT * FROM member WHERE id = #{param1}
	</select>
</mapper>
public interface MemberDAO {

	int join(HashMap<String, String> params);

	String login(String id, String pw);

	ArrayList<MemberDTO> list();

	void del(String id);

	MemberDTO detail(String id);

}

0개의 댓글