[JPA vs myBatis - Setting] 마이바티스 쓸때만...

2025. 9. 3. 10:38BACKEND/STS4

 

핵심 잡고 가기

 

Mybatis <-> 객체와 1:1 맵핑 아니면, 1:다 맵핑이며, 즉, 객체는 DTO입니다.

 

반면, JPA에는 테이블과 객체(즉 엔터티 어노테이션 클래스)입니다.

 

그럼 흐름상....

 

View -> Controller -> Service 까지는 DTO로 주고 받기

 

반면, Service 단에서는 JPA로 DB 전달 그래서 Entity로 전달됩니다.(민감한 정보가 있을 수 있으니, Entity는 전달역할은 하지 않습니다.) 그리고 DB에서 결과가 반환되면, 다시 DTO에 담아서 뷰(View)단으로 반환하면됩니다.(즉, Entity->DTO로 변환)

 

그리고 Mybatis는 다르다. DTO오로 똑같이 Service단까지 받고 다시 거기서 DAO로 DB에 접근하지만, @Mapper 어노테이션이 그 역할을 대신합니다.

 

 

 

# spring(servlet-context.xml)

spring.mvc.view.prefix=/WEB-INF/views/

spring.mvc.view.suffix=.jsp

server.jsp-servlet.init-parameters.development=true



# custom error page

server.error.whitelabel.enabled=false



# MyBatis - spring(dataSource_config.xml) -- 마이바티스 쓸때만 필요...

mybatis.mapper-locations=mappers/**/*.xml

mybatis.type-aliases-package=com.boot.thymeleaf.dao



# 강제 변환을 막는다.

# 주의 : false를 주면 강제변환을 막는다. 강제변환 : bNum -> b_num, b_num -> b_num, 예외) num -> num 한단어인 경우 true이여도 형변환

mybatis.configuration.map-underscore-to-camel-case=false

logging.level.com.atoz_develop.mybatissample.repository=TRACE