개발군싹

1) mybatis Setting(환경설정) 본문

Mybatis

1) mybatis Setting(환경설정)

개발자군싹 2023. 12. 4. 19:44

프로젝트 생성 후 인코딩 작업

➡️ General → Editor → Text Editors → Seplling ⇒ “UTF-8” 설정

➡️ WEB → JSP FILES, CSS FILES, HTML FILES ⇒ 각각 “UTF-8” 설정

⭐ 2개의 설정 파일 생성하기 (

➡️ 통상적으로 mybatis-config.xml 1개와 다수의 mybatis-mapper.xml 파일 생성해서 사용

Mybatis DTD 설정하기

➡️ Window → preferences → XML → XML Catalog → User Specified Entries 클릭 후 Add

<config 설정 >

mybatis-config

 

<mapper 설정>

mybatis-mapper

 


mybatis jar api 파일 다운로드

➡️ https://blog.mybatis.org/ 접속 → release → Maven Central → jar파일 다운로드 (mybatis-3.5.11.jar) ⇒ WEB-INF → lib에 jar 추가 (ojdbc, lombok, taglibs, mybatis 등)

➡️ sources폴더 생성 (src/main/resources)

 

mappers 폴더 생성, resources 폴더 아래 mybatis-config.xml 파일 생성

 

 

➡️ src/main/resources 우클릭 → new → Other → XML File → Next → -config.xml 이름 명명 → Next → Create file using a DTD or XML Schema file 선택 후 Next → Select XML Catalog entry 선택 → User Specified Entries 중 위에서 설정 한 Config 선택 후 Next (🔥 Next 클릭 후 Root element에 configuration 태그가 나와야 정상적으로 설정된 것) → Finish

  • 파일 생성 위치와 xml Editor설정 후 확인 (XML Editor 설정❓ .xml 파일 우클릭 → open with 선택 → other → xml Editor 설정 )

if) xml파일에서 에러가 발생 할 시 Preferences에 들어가서 Maven 검색 후 Download Artifact Javadoc에 체크가 되어 있지 않으면 체크 후 Apply !!!

 


mybatis-config.xml 환경설정(environments, mappers는 필수)

➡️ environments → 다수의 접속 환경 설정 가능 (default - 기본으로 연결된 환경을 설정 가능)

  • DB계정 정보를 설정

  • <environments default=””> ⇒ 다수의 접속 환경 설정 가능. default⇒ 다수의 접속 환경 중 기본으로 접속할 환경을 선택할 수 있다.
  • <environment id=””></environment> ⇒ 기본적으로 세션을 생성 시 접속할 session id값 설정
  • <transactionManager type=””/> ⇒ 트랜잭션을 처리하는 관련정보 설정 ( “JDBC” )
  • <dataSource type=””></dataSource> ⇒ type은 connection pool 설정 (POOLED, UNPOOLED)

➡️ POOLED : 자원 생성 후 저장 시켜두고 접근 시 저장된 자원으로 이용 ( 선호 )

➡️ UNPOOLED : 자원 생성 후 저장 시키지 않고 한번 이용 후 자원 삭제, 재접근 시 새롭게 생성

  • <property> 태그 내 ‘name’과 ‘value’를 이용하여 JDBC 설정과 같이 DB연결 정보를 저장한다.

<environments> 태그에 DB접속에 대한 환경설정 후 <mappers> 등록

➡️ mappers 태그를 이용해서 sql문을 작성한 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">
		<!-- DB접속에 대한 환경정보를 태그로 설정
			environment태그를 이용
		 -->
		 <environment id="mybatis">
		 	<!-- 트랜잭션, connectionpool, 접속정보(DB정보, URL, 계정, 비밀번호) -->
		 	<transactionManager type="JDBC"/>
		 	<dataSource type="POOLED">
				<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
				<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
				<property name="username" value="mybatis"/>
				<property name="password" value="mybatis"/>
		 	</dataSource>
		 </environment>
	</environments>
	
	<mappers>
		<!-- sql문을 작성한 xml파일의 경로를 알려주는 태그  -->
		<mapper resource="/mappers/student-mapper.xml"/>
	</mappers>
	
	
</configuration>

student-mapper.xml (예제)

🔥 -mapper.xml 또한 위 -config.xml 설정과 같다.

➡️ 실질적으로 sql문을 작성하고 dto에 대한 설정을 하는 파일

mapper태그에서 namespace 속성에 dao에서 접근할 mapper명을 표기한다.

 

DBC Template과 같은 역할의 SqlSessionTemplate 생성

➡️ com.mybatis.common pakage 생성

🧑‍💻 JDBC Template 이용 시 commit, rollback, close 등에 대한 공용 메소드를 선언하고 사용했어야 하지만 SqlSessionTemplate(mybatis) 이용 시 session객체에 자동으로 생성되어 있기 때문에 편리하게 이용할 수 있다.

 

public class SqlSessionTemplate {
	public static SqlSession getSession() {
		SqlSession session = null;
		String filename = "mybatis-config.xml";
		try {
			//SqlSession객체 생성하기
			//1. SqlSessionFactoryBuilder클래스의 build()메소드를 호출
			//build()호출하면 SqlSessionFactory객체를 생성한다.
			//build() 매개변수로 config.xml파일을 받는다.
			
			InputStream is = Resources.getResourceAsStream(filename);
			SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
			session = ssf.openSession(false); //transaction 관리 -> true:자동 / false:직접
			
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		return session;
	}
}