지금까지 사용한 jdbc보다 good ~

Data Access

MyBatis framework

Untitled

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 필수