Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

KSI일기장

Spring MyBatis 설정하기(mybatis-config) 본문

Spring

Spring MyBatis 설정하기(mybatis-config)

MyDiaryYo 2023. 4. 25. 21:08



 

 

 








 

 

<!-- JDBC 드라이버 (ojdbc11) -->

<dependency>

    <groupId>com.oracle.database.jdbc</groupId>

    <artifactId>ojdbc11</artifactId>

    <version>21.5.0.0</version>

</dependency>

 

<!-- 스프링에서 JDBC를 사용할 수 있게 하는 라이브러리 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${org.springframework-version}</version>

<!-- 위 properties의 지정한 Spring 버전을 따라감 -->

</dependency>

 

<!-- Mybatis 영속성 프레임워크  -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.5.9</version>

</dependency>

 

<!-- Spring - Mybatis 연결 모듈, 연결 역할을 하는 라이브러리 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>2.0.6</version>

</dependency>

 

<!-- 커넥션 풀 기능을 사용하기 위한 라이브러리 -->

<dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-dbcp2</artifactId>

    <version>2.9.0</version>

</dependency>

→복사

→붙여넣기

-> JDBC드라이버(ojdbc)는 JDBCTemplate을 따로 만들지 않고 pom.xml에 만들어준다 




















 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>

<property name="username" value="community"/>

<property name="password" value="1234"/>

 

<!-- SQL이 수행된 후 자동으로 Commit 되는것을 지정 -->

<property name="defaultAutoCommit" value="false"/>

 

<!-- 커넥션 풀 설정 -->

<property name="initialSize" value="10" /> <!-- 초기 커넥션 수, 기본 0 -->

<property name="maxTotal" value="50" /> <!-- 최대 커넥션 수, 기본 8 -->

<property name="maxIdle" value="20" /> <!-- 유휴 상태로 존재할 수 있는 커넥션 최대 수, 기본 8 -->

<property name="minIdle" value="10" /> <!-- 유휴 상태로 존재할 수 있는 커넥션 최소 수, 기본 0 -->

<property name="maxWaitMillis" value="-1" /> <!-- 예외 발생 전 커넥션이 반환 될 떄 까지 대기하는 최대 시간(ms), 기본 -1(무기한) →

 

-> JDBC Driver와 Connection 설정, 자동commit막기는 JDBCTemplate를 따로 만들지 않고 /spring/root-context.xml에 만들어준다

 










<!-- MyBatis관련 Bean생성 -->

 

<!-- SqlSession : sql구문을 DB에 전달, 실행하는 객체 

SqlSessionFactory : SqlSession을 만드는 객체 

sqlSessionFactoryBean : mybatis 설정 파일(mybatis-config.xml)과 Connection Pool 정보를 이용하여 SqlSessionFactory를 만드는 객체 

sqlSessionTemplate : SqlSession 객체에 트랜잭션 처리 역할이 가능하도록 하는 객체 -->

 

<!-- 마이바티스 SqlSession 등록하기 (xml 방식으로 bean 등록) -->

<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">

<!-- mybatis-config.xml 설정 불러오기 -->

<property name="configLocation" value="classpath:mybatis-config.xml" />

<property name="dataSource" ref="dataSource" />

</bean>

 

<!-- SqlSessionTemplate : 기본 SQL 실행 + 트랜잭션 관리 역할을 하는 SqlSession을 생성할 수 있게 하는 객체(Spring bean으로 등록해야함.) -->

<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg ref="sqlSessionFactoryBean" />

</bean>

 

<!-- 스프링에서 사용하는 proxy를 이용한 트랜잭션 제어가 안될 경우 추가적인 트랜잭션 매니저를 추가해서 문제 해결 -->

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource" />

</bean>

 

 

<!-- <tx:annotation-driven proxy-target-class="true"/> -->

<tx:annotation-driven transaction-manager="transactionManager"/>

 

-> MyBatis관련된 bean설정root-context.xml에 만들어준다