MyBatis
- 예전에는 iBatis라고 불렀다.
- 영속성 계층, 데이터베이스 조작 계층으로써 JDBC 역할을 한다.
- 응용프로그램과 데이터베이스를 연결하는 JDBC 기술인데 JDBC 가 만들어진지 오래되어 생산성이 떨어지는 문제가 있어 보완하기 위해 MyBatis 가 생겨났다.
- Spring 의 기술인 아닌 융합된 기술이다.
#Spring과 Spring Boot의 차이점
초반 세팅의 차이점이다. Spring은 정석으로 자신이 하드코딩해서 설정을 해야하고 Spring Boot는 초반 셋팅을 boot의 도움을 받아 설정한다.
Spring의 장점이 Spring Boot의 단점이고 Spring Boot의 장점이 Spring의 단점이다.
Spring 회사에서 Spring에서 새로운 기술인 Spring Boot를 사용하기 원해서 기존에 쓰던 Spring의 프로젝트를 Spring Legacy Project라고 불리게 되었다.
적용 방법
1. XML Mapper 를 사용하는 방식
2. Interface Mapper를 사용하는 방식
두 가지 방식이 있으며, 이 글에서는 XML Mapper 를 사용하는 방식으로 진행한다.
프로젝트 연동하기
설명없이 요약된 버전은 아래 글을 참고한다.
https://steady-record.tistory.com/entry/Spring-스프링-프로젝트-설정-일괄-적용
1. 버전 설정 - pom.xml
자바 버전 11, Spring 버전 5.0.7 으로 통일한다.
프로젝트 우 클릭 - Properties - Project Facets
Dydnamic Web Module, Java 버전 수정
2. MyBatis 의존성 추가 - pom.xml
pom.xml에 아래 코드 추가
사람들 마다 MyBatis 설정하는것이 동일하지않다. 다양한 jar 파일들이 많아 개인별로 다르게 사용한다.
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<!-- <version>3.4.6</version> warning 때문에 -->
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
3. ojdbc 설치
ojdbc는 maven를 통해 다운 받지 못한다.
몇년전에 ojdbc가 maven를 고소하여 maven이 패소했기에 maven을 통해 다운 받지 못하고 따로 설치를 해줘야한다.
아래 jar 파일을 다운 받아 사용한다.
src - main - webapp - WEB-INF 폴더에 lib 폴더 생성 및 ojdbc6.jar 파일 넣기
JDBC 연결 테스트
JDBC 연결이 잘되었는지 테스트해본다.
1. log4j 설정 - pom.xml
log4j : 로그를 전용을 남겨주는 기술
아래 부분 삭제
log4j 코드 중 version 수정
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2. 테스트 코드 작성
주업무가 아닌 테스트용으로 사용할 때 test 폴더를 사용한다.
메소드명은 자유롭게 짓되 관습적으로 testXXX으로 짓는다.
package com.test.persistence;
import static org.junit.Assert.assertNotNull;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import lombok.extern.log4j.Log4j;
@Log4j
public class JDBCTest {
@Test
public void testConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "java1234");
assertNotNull(conn);
log.info(conn.isClosed());
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Test
- JUnit 프레임워크에서 테스트 메서드임을 나타내는 어노테이션이다.
- 해당 메서드가 테스트 실행에 참여하도록 지정한다.
- assertXXX : 검증 작업
- assertNotNull(a) : a가 null 인지 확인한다. null아 아니면 아래의 화면 같이 초록색으로 진행상황을 알려준다. null이면 Errors, Failures 에 카운트 된다.
@Log4j
- Lombok 라이브러리에서 제공하는 어노테이션으로, 클래스에 로깅을 위한 log 필드를 자동으로 생성한다.
- log.info, log.warn, log.error 등의 로깅 메서드를 사용할 수 있도록 한다.
- 관리할 수 있는 면에서 println 보다 편하다.
log.info(conn.isClosed());
log.warn("경고메시지");
log.error("에러메시지");
'Spring' 카테고리의 다른 글
[Spring] MyBatis 쿼리문 작성하기 (0) | 2023.11.27 |
---|---|
[Spring] MyBatis 와 Spring 연동하기(2) : DBCP 사용하기 (0) | 2023.11.27 |
[Spring] @Controller 요청 메서드의 반환 자료형 (0) | 2023.11.27 |
[Spring] @Controller 기초 및 데이터 송수신하기 (0) | 2023.11.25 |
[Spring] 스프링 프로젝트 설정 일괄 적용 (0) | 2023.11.24 |