본문 바로가기
나중에 올릴 글들 (수정 중)

[Spring] MyBatis란?

by 최호희 2023. 11. 4.
  • 쿼리 기반 웹 애플리케이션을 개발할 때 가장 많이 사용되는 SQL 매퍼(Mapper) 프레임워크이다.
  • MyBatis 를 사용하지 않고 직접 JDBC를 이용할 경우 문제점:
    • 개발자가 반복적으로 작성해야 할 코드가 많고, 서비스 로직 코드와 쿼리를 분리하기가 어렵다.
    • 또한 커넥션 풀의 설정 등 개발자가 신경 써야 할 부분이 많아 여러 가지 어려움이 있다.
  • 따라서, JDBC를 이용해서 직접 개발하기보다는 마이바티스와 같은 프레임워크를 사용하는 게 일반적이다.
  • JDBC를 이용하여 프로그래밍을 하는 방식:
    • 클래스나 JSP와 같은 코드 안에 SQL문을 작성하는 방식
    • 따라서 SQL의 변경 등이 발생할 경우 프로그램을 수정해야 한다.
      • 유연하지 않다, 코드가 복잡하게 섞여 있어서 가독성도 떨어짐
  • 마이바티스에서는 SQL을 XML 파일에 작성하기 때문에, SQL의 변환이 자유롭고 가독성도 좋다.

MyBatis에서 Parameter 전송하기

한 개의 파라미터 전송시

public List<MemberCommand> selectBoard(Integer num);

SQL 문장에 값을 넘길 때 #{num}로 명시


여러 개의 파라미터 전송시 HashMap를 생성해서 데이터를 담고 전송한다.

Map<String,String> map = new HashMap<String,String>();

map.put("name",name);

map.put("phone",phone);

public void insertBoard(Map<String,String> map);

SQL 문장에 값을 넘길 때 #{name}, #{phone}로 명시


HashMap를 생성하지 않고 데이터를 전송하고 싶을 때는

public boolean authCheck(@Param("id") String id, @Param("password") String password);

SQL 문장에 값을 넘길 때 #{id}, #{password} 로 명시하면 된다.

https://mobilenweb.tistory.com/169

'나중에 올릴 글들 (수정 중)' 카테고리의 다른 글

[Spring] Mapper란?  (0) 2023.11.04
REST API 와 Http... 대체 무엇인가?  (0) 2023.11.04