메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


spring-mybatis mybais #과 $의 차이점

총관리자 2015.11.10 18:48 조회 수 : 3928

1. #는 쿼리가 수행될 때, 다음과 같이 된다 
 

 

SELECT * FROM USER 

WHERE 
col = ?  
 
 
parameter : [값]

 

 

?에 bind된 값이 들어가게 된다. 
 
이 쿼리컴파일 된 내용을 재사용 할 수 있고, 파라미터에 따라 대입해주므로 효율적이다.
내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다.
 
preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체
 
 
사용 용도 >>
 
#일 경우, 에 사용한다.
 
myBatis : 컬럼명 = #{값}   
iBatis : 컬럼명 = #값#
 
* 쿼리에 작은 따옴표가 붙게 된다.
 
 
2. $는 쿼리가 수행될 때, 다음과 같이 된다
 

 

SELECT * FROM USER
WHERE 
col = 

 

 

 
값이 넣어진 쿼리 자체로 수행이 된다.(상수)
즉, 문장 전체가 preparedStatement가 된다.
 
사용 용도 >>
 
$일 경우는 컬럼명이 동적으로 바뀌어야 할 때 사용한다. 또는 테이블명.
 
myBatis : ${컬럼명} = #{값}   
iBatis : $컬럼명$ = #{값}
 
* 쿼리에 작은따옴표가 붙지 않는다. 
값에 $를 사용하면 스트링의 경우 작은따옴표로 감싸지지 않기 때문에 에러 발생한다.
 
 
이렇게 사용하지 않으면 unknown column 이나 There is no readable property named  등등의 에러가 뜨게 된다
번호 제목 날짜 조회 수
176 Spark Streaming으로 유실 없는 스트림 처리 인프라 구축하기 2016.03.11 3711
175 System Properties Comparison Elasticsearch vs. Hive vs. Jena file 2016.03.10 12610
174 TopBraid Composer에서 SPIN 사용법 file 2016.02.25 3997
173 SPIN(SPARQL Inference Notation)이란.. file 2016.02.25 5255
172 SPARQL의 유형, SPARQL 만들기등에 대한 설명 2016.02.18 2989
171 select와 group by결과 값이 없는경우의 리턴 값이 다름 file 2016.02.05 3417
170 ?a는 모두 표시하면서 ?b와 비교하여 ?a=?b는 ""로 하고 ?a!=?b 인경우는 해당값을 가지는 결과 집합을 구하는 경우 file 2016.01.29 2735
169 ?a는 모두 표시하면서 ?b와 비교하여 ?a=?b는 표시하고 ?a!=?b 인경우는 ""로 구성된 결과 집합을 구하는 경우 file 2016.01.29 3924
168 null 혹은 ""를 체크하는 방법 2016.01.27 4332
167 sparql 1.1 BIND(if() as ?bind변수) 버그로 추정되는 문제점및 해결방안 -> select 문에 (if(,,) as ?bind변수) file 2016.01.21 2822
166 CDH 5.4.4 버전에서 hive on tez (0.7.0)설치하기 2016.01.14 3573
165 한번에 여러값 update하기 2016.01.13 3571
164 문자열을 숫자(integer)로 casting하기 2016.01.13 3981
163 update(update와 delete->insert)사용시 주의/참고사항 2016.01.06 4070
162 fuseki에 update하는 방법(java api이용)및 주의 사항 2015.12.30 4484
161 mongodb에서 큰데이타 sort시 오류발생에 대한 해결방법 2015.12.22 5231
160 console명령과 API비교 2015.12.21 4906
159 java quartz 시간 설정 참고사항 2015.12.16 3979
158 천문학적, 기후학적, 기상학적, 생물학적, 농사계절 구분 2015.12.16 4238
157 대표 오픈소스 라이선스, 한 눈에 보기! 2015.12.10 3279
위로