기타

[MyBatis] 마이바티스(MyBatis)

sujin7837 2022. 4. 22. 20:43
반응형

MyBatis란?

Java Object와 SQL문 사이의 자동 매핑 기능을 지원하는 ORM 프레임워크입니다. MyBatis는 SQL을 별도의 파일로 분리해서 관리하고, Object와 SQL 사이의 parameter mapping을 자동으로 해줍니다. Hibernate이나 JPA처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담 없이, 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 없애주고 도메인 객체나 VO 객체 중심으로 개발이 가능합니다.

 

https://mybatis.org/

 

mybatis

 

mybatis.org

 

MyBatis의 특징

-쉬운 접근성과 코드의 간결함

  • 가장 간단한 persistance framework
  • 'XML 형태로 서술된 JDBC 코드'라고 할 수 있을만큼 JDBC의 모든 기능을 대부분 제공
  • 복잡한 JDBC 코드를 없애고 깔끔한 소스코드를 유지하게 함
  • 수동적인 parameter 설정과 Query 결과에 대한 mapping 구문 제거

-SQL문과 프로그래밍 코드의 분리

  • SQL에 변경이 발생할 때마다 자바 코드를 수정 및 컴파일하지 않아도 됨
  • SQL 작성과 관리 또는 검토를 DBA와 같은 개발자에게 맡길 필요가 없음

-다양한 프로그래밍 언어로 구현 가능

  • JAVA, C#, .NET, Ruby 등

 

MyBatis 사용하기

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis-version}</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${mybatis-spring-version}</version>
</dependency>

 

1. XML 파일 이용하기

SqlSessionFactoryBuilder를 이용하면 XML 설정 파일에서 SqlSessionFactory 인스턴스를 빌드할 수 있습니다. 여기서 주의할 점은 항상 설정 순서를 유지해야 한다는 것입니다.

properties -> typeAliases -> environments -> mappers

public class SqlMapConfig {
	
	private static SqlSessionFactory factory;

	static {
		try {
			String resource = "mybatis-config.xml";
			Reader reader = Resources.getResourceAsReader(resource);
			factory = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static SqlSession getSqlSession() {
		return factory.openSession();
	}
	
}
<!-- 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>

	<properties resource="dbinfo.properties"/>

	<typeAliases>
		<typeAlias type="com.ssafy.guestbook.model.MemberDto" alias="member" />
	</typeAliases>
	
	<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${dbid}"/>
                <property name="password" value="${dbpwd}"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
    	<mapper resource="member.xml"/>
	</mappers>
	
</configuration>

 

2. 자바 Configuration 클래스이용하기

 

반응형

'기타' 카테고리의 다른 글

[DB] ORM(Object-Relational-Mapping) 프레임워크  (0) 2022.04.22
[CSS] text-align 속성  (0) 2022.03.04
[운영체제론] Process  (0) 2021.12.11
[운영체제론] IPC(Inter-Process Communication)  (0) 2021.12.11
[운영체제론] System Call  (0) 2021.12.11