UTF-8 인코딩설정 완료..(생략)
Perspective에서 Java로 변경
mybatic-3.5.6.jar파일, ojdbc8.jar파일 lib폴더 생성해서 넣어줌
프로젝트 Properties - Java BuildPath - Libraries - Classpath에 위에 위의 파일들 AddJARs 적용
이전 jdbc에서 사용했던 오라클 계정을 연결시켜준다.
DB접속에 관한 환경 설정
- JdbcTransactionFactory : 수동 커밋
- ManagedTransactionFactory : 자동 커밋
- PooledDataSource : ConnectionPool 사용
- UnPooledDataSource : ConnectionPool 미사용
생성한 환경 설정 정보를 가지고 마이바티스 설정 객체 생성
설정 객체에 매퍼 등록
- SqlSessionFactory : SqlSession 객체를 생성하기 위한 팩토리 역할을 수행하는 인터페이스
- SqlSessionFactoryBuilder : SqlSessionFactory 인터페이스 타입의 하위 구현 객체를 생성하기 위한 빌드 역할 수행
- build() : 설정에 대한 정보를 담고 있는 Configuration 타입의 객체 혹은 외부 설정 파일과 연결된 스트림을 매개변수로 전달하면 SqlSessionFactory 인터페이스 타입의 객체를 반환하는 메소드
- openSession() : SqlSession 인터페이스 타입의 객체를 반환하는 메소드, boolean 타입을 인자로 전달
- false : Connection 인터페이스 타입 객체로 DML 수행 후 auto commit에 대한 옵션을 false로 지정(권장)
- true : Connection 인터페이스 타입 객체로 DML 수행 후 auto commit에 대한 옵션을 true로 지정
Mapper인터페이스 생성
- getMapper() : Configuration에 등록된 매퍼를 동일 타입에 대해 반환하는 메소드
- Mapper 인터페이스에 작성된 메소드를 호출하여 쿼리 실행
- close() : SqlSession 객체 반납
전체코드
package com.greedy.section01.javaconfig;
import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
public class Application {
private static String DRIVER = "oracle.jdbc.driver.OracleDriver";
private static String URL = "jdbc:oracle:thin:@localhost:1521:xe";
private static String USER = "C##REVIEW";
private static String PASSWORD = "REVIEW";
public static void main(String[] args) {
Environment environment =
new Environment("dev" //환경 정보 이용
, new JdbcTransactionFactory() //트랜잭선 매니저 종류 결정
, new PooledDataSource(DRIVER, URL, USER, PASSWORD)); //Connection pool 사용 유무
Configuration configuration = new Configuration(environment);
configuration.addMapper(Mapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
SqlSession sqlSession = sqlSessionFactory.openSession(false);
Mapper mapper = sqlSession.getMapper(Mapper.class);
java.util.Date date = mapper.selectSysdate();
System.out.println(date);
sqlSession.close();
}
}
https://mybatis.org/mybatis-3/ko/getting-started.html
MyBatis – 마이바티스 3 | 시작하기
Copyright © 2009–2021MyBatis.org. .
mybatis.org
마이바티스 사이트에 들어가서 확인해보면 XML을 사용하지 않고 SqlSessionFactory 빌드하는 법이 나온다.
위에서 써온 코드와 비슷한 것을 확인할 수 있다.
마이바티스 사이트에서 xml에서 빌드하는 코드가 나와있다.
<!DOCTYPE 부터 복사해서 xml파일을 만들어주자.
mapper.xml 파일도 만들어주자
Application
package com.greedy.section02.xmlconfig;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Application {
public static void main(String[] args) {
String resource = "com/greedy/section02/xmlconfig/mybatis-config.xml";
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession(false);
java.util.Date date = session.selectOne("mapper.selectSysdate");
System.out.println(date);
} catch (IOException e) {
e.printStackTrace();
}
}
}
'TIL > MyBatis' 카테고리의 다른 글
[MyBatis] Dynamic Sql (0) | 2022.03.16 |
---|---|
[MyBatis] crud-javaconfig (0) | 2022.03.15 |
[MyBatis] crud-xmlconfig (0) | 2022.03.14 |