https://mybatis.org/mybatis-3/getting-started.html
마이바티스 모듈 설치 및 설정 - 인터페이스 생성 - resources 밑에 mapper.xml 생성 (이전 Repository 역할, 이 곳에 sql을 적음)
-> mapper.xml 파일들을 사용하기 전에 등록하는 곳
-> 여러 설정들을 하는 곳 (별칭, 카멜케이스-스네이크케이스 변환 등)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- SQL을 적어놓은 ...Mapper.xml 파일들을 사용등록하는 영역 -->
<mappers>
<mapper resource="mappers/PersonMapper.xml" />
</mappers>
</configuration>
-> sql 적는 곳
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper파일은 실행할 SQL을 적는 파일 -->
<!-- 생성한 mapper 파일은 mybatis-config.xml에 사용등록을 해야함. -->
<!-- namespace속성에는 사용할 인터페이스의 풀네임(패키지+인터페이스명)을 적음 -->
<mapper namespace="com.study.springstudy.database.chap02.PersonMapper">
<!-- id 속성에 인터페이스의 추상메서드명을 적는다. -->
<insert id="save">
INSERT INTO tbl_person
(id, person_name, person_age)
VALUES
(#{id}, #{personName}, #{personAge})
</insert>
</mapper>
-> insert에 대한 sql문을 작성하기 위해 id에 추상메서드명인 save를 넣어주었다.
-> 원래는 ?가 있을 자리에 #{}가 들어가고 연결되어있는 클래스의 필드명들을 입력해준다.
-> 정말 만들었던 메서드가 잘 실행되는가? 확인하기 위해 Test를 만들어서 돌아가는지 확인
<delete id="delete">
DELETE FROM tbl_person
WHERE id = #{id}
</delete>
<update id="update">
UPDATE tbl_person
SET person_age = #{personAge}, person_name = #{personName}
WHERE id = #{id}
</update>
<!-- resultType: 매핑될 클래스 명을 작성-->
<select id="findAll" resultType="com.study.springstudy.database.chap01.Person">
SELECT * FROM tbl_person
</select>
<select id="findOne" resultType="com.study.springstudy.database.chap01.Person">
SELECT * FROM tbl_person
WHERE id = #{id}
</select>
<!-- 이름만 가져오는 것이니 string으로 -->
<select id="findNames" resultType="string">
SELECT person_name FROM tbl_person
</select>
<!-- 총 숫자만 가져오는 것이니 int로 -->
<select id="count" resultType="int">
SELECT COUNT(*)
FROM tbl_person
</select>