데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 xml로 구조화한 Mapper 설정 파일을 통해서 JDBC를 구현한 영속성
프레임워크
기존에 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 xml 설정을 통해 쉽게 구현할 수 있음
MyBatis 공식 페이지 https://mybatis.org/mybatis-3/ko/

JDBC 프레임워크
C reate 생성
R ead 조회
U pdate 수정
D elete 삭제
DB단 프레임워크
xml 파일 형태 많이 사용


SqlSession Connection + 마이바티스
Factory Bean 공장도 가동이 되려면 객체 형태가 돼있어야함
Bean Spring이 생성하고 Spring이 관리하는 객체
각종 설정들을 작성해둔 파일 mybatis-config.xml (직접 작성할 거)
공장 통해서 만들어진 게 SqlSession Template (SqlSession + 트랜잭션)
mapper.xml 파일에다가 sql 쿼리문 모아둘 거
오른쪽에 작성된 메서드들 통해서 sql 실행할 수 있음
메뉴 바 Help -> Eclipse Marketplace -> Find 검색 창에 xml 검색 enter -> confirm -> license accept (위에거 체크하고 Finish) -> PGP 체크하고 trust selected 클릭 -> restart now 클릭


(아래 내용을 차례대로 추가 그대로 복사 붙여넣기 하고 ok)
Config
Location : http://mybatis.org/dtd/mybatis-3-config.dtd
Key type : Public ID
Key : -//mybatis.org//DTD Config 3.0//EN
Mapper
Location : http://mybatis.org/dtd/mybatis-3-mapper.dtd
Key type : Public ID
Key : -//mybatis.org//DTD Mapper 3.0//EN
하고 apply and close
mybatis 이용하려면 필요함 오타나면 안됨

바로 finish 누르면 안되고 next 누른 다음에 위에 거 선택해야함

next 아래 거 선택 user specified entries 누르고 dtd config next

아무것도 건들지 말고 finish
source 탭 누르면 내용 뜸
빨간 줄 에러 뜰 때 window -> preferences -> xml wild web developer -> download external resources 체크 하고 apply and close 하면 빨간 줄 사라짐
configuration (설정) 태그 사이에 내용 작성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0/EN" "http://mybatis.org/dtd/mybat
<configuration>
<settings>
<!-- Java -> DB로 INSERT,UPDATE 시 Java의 null 값을 DB의 NULL로 인식하도록 설정-->
<setting name="jdbcTypeForNull" value="NULL" />
<!-- DB의 UnderScore (_) 표기법 <-> Java의 Camel 표기법
두 표기법이 서로 변환 될 수 있도록 매핑하여
Java 필드명(memberId)과 DB 컬럼명(MEMBER_ID)가 서로 연결되게 함
-->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
java -> null : null 참조하는 게 없다
db -> null : null 값 자체가 없다
java userName 카멜 표기법
db USER_NAME 언더스코어 표기법
JDBC 할 때
DAO 에서 String userName = rs.getString("USER_NAME");
이거를 둘이 작성된 문자만 똑같다면 둘이 같은 거다라는 인식 설정
sql 들 넣는 파일이라서 폴더 하나 만듦



<cache-ref namespace=""/>
삭제 안하면 오류남
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-m
<mapper namespace="연결할 Mapper 인터페이스 파일 경로 작성 (필수)">
<!-- 해당 태그는 무조건 삭제!! -->
<!--<cache-ref namespace=""/>-->
<!-- 수행 하려는 SQL 구문 태그 작성-->
<select id="" parameterType="" resultType="">SQL 작성</select>
<insert id="" parameterType="">SQL 작성</insert>
<update id="" parameterType="">SQL 작성</update>
<delete id="" parameterType="">SQL 작성</update>
</mapper>
int num 가져왔으면 parameterType 에 _int 또는 _integer 써야함
String 쓸 거면 string 이렇게 써야함
Integer 는 int 로 써야함
resultType 조회 결과를 어디에 담아 보낼건지 작성해줘야함
구문을 찾기 위해 사용될 수 있는 네임스페이스 내 유일한 구분자
Mapper 인터페이스의 메서드명 동일하게 작성
구문에 전달될 파라미터의 클래스 명(패키지 경로 포함)이나 별칭
리턴되는 타입의 패키지 경로를 포함한 전체 클래스 명이나 별칭, collection인 경우 list, arraylist로 설정할 수 있다.
