민스씨의 일취일장

LogT | Java Spring의 MyBatis에 대해 알게된 모든 내용과 고민들 본문

Programming Language & Framework/JAVA & Spring

LogT | Java Spring의 MyBatis에 대해 알게된 모든 내용과 고민들

읻민스 2023. 2. 9. 22:01
반응형

Java Spring MyBatis를 공부하면서 알게된 내용들과 고민들을 시간순으로 기록하는 페이지이다.

MyBatis

MyBatis-썸네일-이미지이다.
MyBatis

공부한 내용

2023-02-09

MyBatis란?

  • SQL Mapping 프레임워크이다.
  • SQL을 Java 코드에서 분리시켜 XML 파일에 작성하여 Query문과 Java 코드를 명확하게 구분해 관리할 수 있는 장점이 있다.

필요한 Dependency

MyBatis와 MyBatis Spring이 필요하다.

SqlSession

MyBatis를 사요하기 위해서 필요한 것은 결론적으로 SqlSession이다. SqlSession을 생성하기 위해서는 SqlSessionFactory가 먼저 있어야 한다.

SqlSessionFactory SqlSession을 생성해서 제공
SqlSession SQL 명령을 수행하는데 필요한 메서드들을 제공
Thread-Safe

* Thread-Safe : 멀티쓰레드에 안전하다. 다시 말해, 여러 쓰레드가 동시에 접근해도 문제없다.

*Mapper.xml

  • <typeAliases>
<typeAliases>
	<typeAlias alias="UserDto" type="com.ydmins.domain.UserDto"/>
</typeAliases>

실제 이름인 com.ydmins.domain.UserDto를 작성하기가 번거로워서 alias를 이용해 별칭을 만들고 이를 통해서 기능을 사용할 수 있다.


2023-02-13

Dao - DaoImpl - Mapper.xml의 관계

Dao

Dao는 Repository 레이어의 인터페이스이다. 인터페이스를 분리함으로써 다양한 DB에 간편히 대응할 수 있다.

DaoImpl

DaoImpl은 Dao 인터페이스의 구현체이다. 하지만 MyBatis를 활용할 때의 DaoImpl은 Mapper.xml의 메서드에 인자를 전달하고 호출하는 역할을 한다.

Mapper.xml

Mapper.xml은 실제로 DB와 직접적인 네트워킹을 하는 역할을 한다. SQL 쿼리문을 작성할 수 있고 데이터를 입력 또는 가공하여 DaoImpl에게 전달해준다

 

 

728x90
반응형