ch4-1 - MyBatis의 소개와 설정

서현우·2022년 7월 7일
0

스프링의정석

목록 보기
78/85

ch4-1 - MyBatis의 소개와 설정

  • MyBatis 소개
  • SqlSessionFactoryBean - SqlSession을 생성하기 위해 bean으로 등록
  • SqlSessionTemplate - bean등록 후, SQL 메서드를 Dao에서 사용
  • SqlSessionTemplate의 메서드 - insert, update, delete, selectOne, selectList, selectMap
  • mybatis-config.xml - MyBatis 설정파일, 별명 지정

MyBatis란?

  • SQL MAPPING Framework
  • SQL을 별도의 XML파일로 분리해서, 자바코드로 사용.
  • 자바 코드로 SQL문을 분리해서 관리.
  • 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거.
    (setString(), setInt(), getInt() ...를 제거)
  • 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리.
  • Spring 5.0이상을 쓸 때 myBatis-spring은 2.0이상, MyBatis는 3.5이상을 써야 한다.

SqlSessionFactoryBean과 SqlSessionTemplate

  1. mybatis가 제공 - interface
  • SqlSessionFactory - SqlSession을 생성해서 제공.
  • SqlSession - SQL명령을 수행하는데 필요한 메서드를 제공
  1. mybatis-spring이 제공 - class
  • SqlSessionFactoryBean - SqlSessionFactory를 Spring에서 사용하기 위한 빈.
  • SqlSessionTemplate - SQL명령을 수행하는데 필요한 메서드 제공. thread-safe(멀티쓰레드에 안전).
    따라서 SqlSessionTemplate를 이용해서 Dao를 작성한다. 그리고 멀티쓰레드에 안전하므로 각각의 Dao는 SqlSessionTemplate를 공유 가능.
  • root-context.xml에 저장
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"/>
	<property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
</bean>

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
	<constructor-arg ref="sqlSessionFactory"/>
</bean>

SqlSession의 주요 메서드

  • int insert() - insert, delete, update는 DB에 영향을 준 row의 수를 반환(성공은 1, 실패는 0)
  • int delete()
  • int update()
  • T selectOne() - 하나의 행을 가져올 때
  • List selectList() - 여러개의 행
  • Map<K,V> selectMap() - 여러개의 행

typeAliases로 이름 짧게 하기

  • mybatis-config.xml에 작성.
    java.lang.Integer --> int (기본 설정 되어 있음)
    com.fastcampus.ch4.domain.BoardDto --> BoardDto
  • 별명은 대소문자 구별 X, 실제이름은 대소문자 구분 O.
profile
안녕하세요!!

0개의 댓글