Mybatis는 Java persistence
Framework의 하나이다.
XML이나 Annotation을 사용하여 저장 프로시저나 SQL문으로 객체들을 연결 시킨다.
> Persistence
- application을 종료후 실행 시 이전에 저장한 데이터를 다시 불러올 수 있는 기술
MyBatis는 DB CRUD
를 다루는 클래스 및 설정 파일들을 가지고 있어 자체처리 가능
> CRUD
- Create Read Update Delete
Mybatis를 활용하기 위해서는 몇가지 작업을 미리 해주어야 한다
<?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);
}