MyBatis 다수의 접속환경 만들기

최주영·2023년 7월 9일
0

MyBatis

목록 보기
6/8

✅ SessionTemplate 클래스와 mybatis-config.xml 파일에서 설정이 필요함

  • SessionTemplate 클래스
package com.employee.common;

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 SessionTemplate {

	public static SqlSession getSession() { 
		
		SqlSession session = null;
		String file="mybatis-config.xml";
		try { 
			InputStream is=Resources.getResourceAsStream(file);
			SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
			SqlSessionFactory factory =builder.build(is);
			session=factory.openSession(false);
		}catch(IOException e) {
			e.printStackTrace();
		}
		return session;
	}
	
	
	public static SqlSession getWebSession() { // 환경을 하나 더 만들어줌
		String file="mybatis-config.xml";
		SqlSession session=null;
		try(InputStream is=Resources.getResourceAsStream(file)){
			session=new SqlSessionFactoryBuilder().build(is,"web").openSession(false); // build의 두번째 인수에 접속할 환경넣어줌 
		}catch(IOException e) {
			e.printStackTrace();
		}
		return session;
	}
}
  • mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<environments default="mybatis"> <!-- 기본연결이 mybatis임 -->
		<environment id="mybatis">
			<transactionManager type="JDBC"/> <!-- 트렌젝션을 처리하는 방법설정 -->
			<dataSource type="POOLED">
			<!-- DB 연결에 필요한 정보를 등록하는 태그 
				1. 드라이버, 2.DB서버 주소, 3.사용계정  4.계정비밀번호
			-->
<!-- 				<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
				<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
				<property name="username" value="BS"/>
				<property name="password" value="BS"/> -->
				<property name="driver" value="${driver}"/> <!-- properties 파일안의 키값으로 값을 가져옴  --> 
				<property name="url" value="${url}"/> 
				<property name="username" value="${user}"/> 
				<property name="password" value="${pw}"/> 
			</dataSource>
		</environment>
      
      <!-- 위 세션클래스에서 접속할 때, id값이 web으로 접속가능함 -->
		<environment id="web">  <!-- 접속환경을 하나 더 만들 수 있음 -->
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/> <!-- properties 파일안의 키값으로 값을 가져옴  --> 
				<property name="url" value="${url}"/> 
				<property name="username" value="WEB"/> 
				<property name="password" value="WEB"/> 
			</dataSource>
		</environment>
		
	</environments>
	<!-- 실행할 sql문을 설정한 mapper를 등록 -->
	<mappers>
		<mapper resource="/mappers/employee-mapper.xml"/>
		<mapper resource="/mappers/member-mapper.xml"/>
	</mappers> 
</configuration>
profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글