( mybatis ) mybatis 개념과 #와 $의 차이점

ZZOOO

·

2021. 4. 25. 20:26

안녕하세요 오늘은 mybatis를 이용하여 프로젝트 진행하시는 분들이라면

한 번쯤 필요할만한 정보라고 생각이 듭니다.


 

mybatis 란 ?

 

🟠  객체 지향 언어 JAVA jdbc( Java DataBase Connectivity )를 이용한 Framework

🟠  객체( Object )와 SQL 사이의 파라미터 Mapping 작업을 자동으로 해주기에 유용하게 사용되는 기술이다.

🟠  SQL 쿼리를 따로 작성하여 실제 실행되는 코드와 분리되어 쿼리문 관리에 용이하다.

 


mybatis 특징 ?

 

🟢  간단한 persistent framework이다 

🟢  Mybatis Mapper Interface를 통해서 DB에 접근한다

🟢  파라미터 형식을 수동적으로 변경할 수 있다

🟢  복잡한 jdbc 코드가 아니라 깔끔한 소스코드를 유지할 수 있다

 

간단하게 mybatis의 개념과 특징을 나열해보았습니다.


#와 $의 차이

 

#{}

 

🟣 query로 들어오는 parameter가 String 형태로 입력이 되어 자동적으로 'parameter' 형태로 변환됩니다.

Ex ) #{db_name} = abc  는 db_name = 'abc' 와 같은 쿼리라고 보면 됩니다.

🟣 쿼리 주입을 예방할 수 있어서 보안 측면에서 좋다고 설명이 되어있습니다.

 


 

${}

 

🟤  query로 들어오는 parameter가 바로 출력됩니다.

Ex ) #{db_name} = abc 는 db_name = abc와 같은 쿼리입니다.

🟤  위와 반대로 쿼리 주입을 예방할 수 없어 보안 측면에서 불리하다고 합니다.

그렇기 때문에 사용자가 입력한 값을 전달할 때에는 추천하는 방법이 아니라고 합니다.

 

🟤  table 또는 column 명을 parameter 값 그대로 전달하고 싶을 때에 사용한다고 합니다

( 제가 이 부분에서 쪼끔 삽질했습니다 )

 


이렇게 간단하게 mybatis의 개념과  mybatis 문법 중 에서 #{}와 ${}의 차이를 알아보았습니다.

읽어주셔서 감사합니다 .

 

반응형