MyBatis

brave_chicken·2024년 5월 12일

잇(IT)생 챌린지

목록 보기
44/90

[MyBatis 설정]

  • JdbcTemplate처럼 자동화해주는 부분이 많아서 편리
  • SQL은 xml파일로 분리
  • 개발자가 SQL을 작성하면 SQL의 실행결과나 파라미터를 편리하게 객체로 매핑해주는 작업을 처리
  • 동적쿼리(유저가 뭘 선택하냐에 따라 쿼리가 다양하게 만들어짐, 영상에서 본것처럼)를 위한 기능을 제공(,,...)

1. pom.xml에 라이브러리를 추가

  • MyBatis라이브러리
  • spring과 MyBatis를 연동하기 위한 라이브러리(스프링에서 마이바티스사용하기위한)

    두가지 다 설정

pom.xml에 추가

<!-- mybatis 사용을 위한 라이브러리 -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis</artifactId>
		    <version>3.5.7</version>
		</dependency>
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>2.0.6</version>
		</dependency>

2. MyBatis설정파일 작성

  • MyBatis의 설정정보를 담고 있는 기본 설정파일(메인설정파일-xml)
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">

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">
  <configuration>
  	<!-- SQL이 실행되면서 내부에서 사용할 DTO와 Mapper파일을 등록 -->
  
  </configuration>
  • mapper파일의 위치
  • 내부에서 사용할 DTO를 등록

3. Spring에서 MyBatis를 사용하기 위해서 설정파일에 추가

1) SqlSessionFactory

  • SqlSessionFactoryBean
  • spring과 MyBatis를 연결해주는 클래스(호환가능)
  • MyBatis와 오라클의 연결을 관리
<!--===============================MyBatis사용을 위해서 필요한 라이브러리==============================  -->
	<!-- MyBatis내부에서 DataSource를 통해서 커넥션을 관리하고 스프링과 연동을 위한 객체 
		DataSource객체와 MyBatis의 메인설정파일의 위치정보를 지정해야한다.
	-->
	<beans:bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<beans:property name="dataSource" ref="ds"/>
		<beans:property name="configLocation" value="/WEB-INF/config/mybatis-config.xml"/>
	</beans:bean>
	<!-- MyBatis의 핵심클래스(sql을 실행하기 위한 기능을 제공) -->
	<beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
		<beans:constructor-arg ref="sessionFactory"/>
	</beans:bean>

2) SqlSession

  • SqlSessionTemplate을 등록
  • MyBatis에서 SQL문을 실행할 수 있도록 기능을 지원하는 핵심클래스
  • JdbcTemplate과 동일한 역할을 하는 클래스
  • 내부에서 SqlSessionFactory가 갖고있는 DataSourse를 이용해서 sql을 실행

4. XML Mapper를 정의하고 등록

  • sql문을 정의하는 xml파일

5. MyBatis를 통해 작업을 할 수 있도록 사용자정의클래스

  • Controller -> Service -> DAO
  • 뷰 준비해서 요청부터 응답까지 필요한 뷰의 정보를 tiles설정파일에 등록

1) tiles에 뷰등록
2) 최초요청이 시작되는 곳에서 링크수정
3) 컨트롤러작성
4) 서비스작성
5) DAO작성
6) mapper에 sql등록
7) 응답되는 뷰를 수정해서 응답 결과를 출력할 수 있도록 작업

플러그인 설치


본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.

0개의 댓글