Framework/Spring

[Spring]sqlsession 사용 유무 Flow 차이점

dev_david 2021. 1. 5. 01:17

기존 Project

 

Controller -> Service -> Mapper.java -> Mapper.xml

Controller <- Service <- Mapper.java <- 

 

SqlSession 사용 경우

 

Controller

-> ServiceImpl(Interface implement)

-> DaoImpl(Interface implement)

:  return sqlsession.selectList(NameSpace + ".~~~~);

-> user.xml

-> DaoImpl

-> ServiceImpl

-> Controller

 

즉, 기존 Project의 방식은 Mapper.java 클래스 이름을 별도로 지정 및 Mapper.xml을 별도로 계속 생성해줘야 한다.

예) UserMapper, AccountMapper 등 생성해주고, UserMapper 안에 InsertUser Interface를 생성해줘야 함.

그리고 거기에 맞는 mapper의 xml도 생성해줘야 한다.

 

하지만 sqlsession에는 select 등 이미 다 구현이 되어 있어서, 대규모 프로젝트에는 그것만 사용하도록 강제할 수 있다.

또한 return sqlsession("queryID", VO) 이런 식으로 한다면

query에 맞는 user.xml에 자동적으로 mapping해준다