1. MyBatis와 SqlSession의 역할 이해

1.1 SqlSession의 역할

1.2 SqlSession의 동작 흐름

  1. Mapper 연결: sqlSession.getMapper(Service.class)와 같은 방식으로 Service 인터페이스를 구현하는 프록시 객체를 생성합니다.
  2. SQL 실행: Mapper 인터페이스의 메서드를 호출하면, MyBatis가 SqlSession을 통해 Mapper XML에 매핑된 SQL을 찾아 실행합니다.
  3. 결과 반환: SqlSession이 SQL을 실행한 후, 결과를 Mapper 인터페이스의 메서드 형태로 반환합니다.

2. 기존 방식: 컨트롤러에서 SqlSession 직접 사용

2.1 기존 방식의 개요

2.2 예제 코드 (기존 방식)

@Controller
public class ExampleController {

    @Autowired
    private SqlSession sqlSession;

    @RequestMapping("/insertExample")
    public String insertExample(@RequestParam String name) {
        Service service = sqlSession.getMapper(Service.class);
        service.insertData(name); // Service 인터페이스의 insertData() 호출
        return "redirect:/exampleList";
    }
}

2.3 장단점