Open WonYong-Jang opened 4 years ago
Mybatis 와 mybatis-spring 을 사용하기 위해 4가지 라이브러리 추가
spring-jdbc / spring-tx : 스프링에서 데이터베이스 처리와 트랜잭션 처리 (Mybatis와 무관해 보이지만 추가하지 않은 경우 에러가 발생)
mybatis / mybatis-spring : Mybatis와 스프링 연동용 라이브러리
compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.2'
compile group: 'org.mybatis', name: 'mybatis', version: '3.4.6'
compile group: 'org.springframework', name: 'spring-jdbc', version: '5.0.7.RELEASE'
compile group: 'org.springframework', name: 'spring-tx', version: '5.0.7.RELEASE'
public interface TimeMapper {
@Select("SELECT sysdate FROM dual")
public String getTime();
}
@Configuration
@ComponentScan(basePackages = {"org.zerock.sample"})
@MapperScan(basePackages = {"org.zerock.mapper"})
public class RootConfig {
@Bean
public DataSource dataSource() {
HikariConfig hikariConfig = new HikariConfig();
//hikariConfig.setDriverClassName("oracle.jdbc.driver.OracleDriver");
//hikariConfig.setJdbcUrl("jdbc:oracle:thin:@localhost:49161:xe");
hikariConfig.setDriverClassName("net.sf.log4jdbc.sql.jdbcapi.DriverSpy"); // log4jdbc.log42j 설정후
hikariConfig.setJdbcUrl("jdbc:log4jdbc:oracle:thin:@localhost:49161:xe"); // log4jdbc.log42j 설정후
hikariConfig.setUsername("system");
hikariConfig.setPassword("oracle");
HikariDataSource dataSource = new HikariDataSource(hikariConfig);
return dataSource;
}
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource());
return (SqlSessionFactory) sqlSessionFactory.getObject();
}
}
커넥션 풀 설정
일반적으로 여러명의 사용자를 동시에 처리해야 하는 웹의 경우 DB 연결에 커넥션 풀을 이용! => 스프링 커넥션 풀을 등록해서 사용하는 것이 좋은데 자바에서는 DataSource라는 인터페이스를 통해서 커넥션 풀을 사용
DataSource를 통해 매번 디비와 연결하는 것이 아닌 미리 연결을맺어주고 반환 하는 구조 이용하여 성능 향상
커넥션 풀은 여러 종류가 있고 spring-jdbc 라이브러리를 사용해도 되지만 본 프로젝트는 최근 유행하는 HikariCP를 이용
compile group: 'com.zaxxer', name: 'HikariCP', version: '2.7.4'