1. #는 쿼리가 수행될때 아래와 같이 된다
1
2
3
4
5
6
7
8
9
|
SELECT * FROM USER
WHERE
col = ?
parameter : [값]
|
cs |
?에 bind된 값이 들어가게된다.
이쿼리의 컴파일된 내용을 재사용할수 있고, 파라미터에 따라 대입해주므로 효율적
내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다.
* preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체
사용 용도 >>
#일 경우, 값에 사용한다.
2. $는 쿼리가 수행될 때, 다음과 같이 된다
사용 용도 >>
$일 경우는 컬럼명이 동적으로 바뀌어야 할 때 사용한다. 또는 테이블명.
myBatis : ${컬럼명} = #{값}
iBatis : $컬럼명$ = #{값}
* 쿼리에 작은따옴표가 붙지 않는다.
값에 $를 사용하면 스트링의 경우 작은따옴표로 감싸지지 않기 때문에 에러 발생한다.
1
2
3
4
5
|
SELECT * FROM USER
WHERE
col = 값
|
cs |
나같은경우엔 웹페이지에서 검색기능을 구현할때 검색할 키워드의 type 체크할때
$를 사용해서 동적으로 변경해주는식으로 사용했다
'데이터베이스 > MyBatis' 카테고리의 다른 글
[Mybaits] <selectKey> 속성 (0) | 2021.05.30 |
---|---|
[Mybaits] 마이바티스 #{}과 ${}의 차이 (0) | 2021.05.25 |
[Mybatis] 마이바티스 insert 후 결과값 반환 <SelectKey> 태그 (1) | 2021.05.17 |
[Mybatis] 마이바티스 CDATA 사용하기 (0) | 2021.03.09 |
[Mybatis] 마이바티스 parameterType와 resultType차이 (0) | 2021.03.09 |