지금까지 사용한 jdbc보다 good ~
Data Access
MyBatis framework

mybatis 세팅
// build.gradle - MyBatis 모듈
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
// application.propertise
//# datasource setting - JDBC ?? ?? ?? ??
spring.datasource.url=jdbc:mariadb://localhost:3306/spring5
spring.datasource.username=root
spring.datasource.password=maria
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
//#mybatis setting
mybatis.config-location = classpath:mybatis-config.xml
//mybatis-config.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>">
=======================================================================
<?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>
Mapper
PersonMapper.java (인터페이스)
// 기존 Repository 역할
@Mapper
public interface PersonMapper {
// Repository 클래스 역할
// 사람 전체 조회
List<Person> findAll();
// 사람 개별 조회
Person findOne(long id);
// 사람 등록
boolean save(Person p);
// 사람 수정
boolean update(Person newPerson);
// 사람 삭제
boolean delete(long id);
// 사람들의 이름만 조회
List<String> findNames();
// 사람들이 총 몇명인지 숫자만 조회
int count();
}
PersonMapper.xml → 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에 사용등록을 해야 함.-->
<!--namespqce 속성에는 사용할 인터페이스의 풀네임(패키지+인터페이스명)을 적음-->
<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>
SQL작성시 SELECT → resultType 필수