✅ 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>