DBMS

MyBatis

내이름효주 2024. 7. 3. 15:50

MyBatis: XML 서술자나 애너테이션을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결

  • 사용 방법순서 : 의존성 설정 -> DB 설정 -> MyBatis 설정 -> Mapper 인터페이스 작성 -> XML 작성 -> MyBatis 사용
  • 특징
    • 유연성: SQL 쿼리를 직접 작성할 수 있으므로 매우 유연. 또한, 동적 쿼리 작성가능
    • 간결성: SQL 쿼리와 프로그래밍 언어 코드를 분리하여 코드가 간결, 유지보수에 용이
    • 성능: 캐시 기능을 제공하여 데이터베이스 연산 속도를 높일 수 있다.

#{}, ${}의 차이점

  • #{}
    • 파라미터가 String 형태로 들어와 자동적으로 파라미터 형태
      ex) #{user_id}의 user_id값이 kim이라면 쿼리문에는 USER_ID = 'kim'의 형태가 됨
    • 쿼리 주입을 예방할 수 있어 보안측면에서 유리함
  • ${} 
    • 파라미터가 바로 출력
    • 해당 컬럼의 자료형에 맞추어 파라미터의 자료형이 변경됨
    • 쿼리 주입을 예방할 수 없어 보안측면에서 불리함 (사용자의 입력을 전달할때는 사용하지 않는 편!)
    • 테이블이나 컬럼명을 파라미터로 전달하고 싶을 때 사용함