Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
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 등등의 에러가 뜨게 된다
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
161 | mongodb에서 큰데이타 sort시 오류발생에 대한 해결방법 | 2015.12.22 | 950 |
160 | console명령과 API비교 | 2015.12.21 | 922 |
159 | java quartz 시간 설정 참고사항 | 2015.12.16 | 808 |
158 | 천문학적, 기후학적, 기상학적, 생물학적, 농사계절 구분 | 2015.12.16 | 701 |
157 | 대표 오픈소스 라이선스, 한 눈에 보기! | 2015.12.10 | 668 |
156 | sparql 문법구조 설명 | 2015.12.09 | 843 |
155 | git설명 한글판 | 2015.12.09 | 502 |
154 | protege 4.3 다운로드 | 2015.12.09 | 354 |
153 | ontology, jena, sparql등 전반에 대한 설명및 예제를 제공하는 사이트 | 2015.12.08 | 545 |
152 | 마이바티스(MyBatis)쿼리로그 출력및 정렬하기 | 2015.12.01 | 1590 |
151 | sparql에서 concat에제 | 2015.11.27 | 598 |
150 | Runtime.getRuntime().exec(cmd) sample 소스 | 2015.11.19 | 574 |
149 | Resource temporarily unavailable(자원이 일시적으로 사용 불가능함) 오류조치 | 2015.11.19 | 8150 |
» | mybais #과 $의 차이점 | 2015.11.10 | 816 |
147 | Mybatis foreach 문법정리(상황에 따른 사용법) | 2015.11.10 | 1749 |
146 | DB별 JDBC 드라이버 | 2015.10.02 | 834 |
145 | root계정으로 MariaDB설치후 mysql -u root -p로 db에 접근하여 바로 해줘야 하는일..(케릭터셑은 utf8) | 2015.10.02 | 912 |
144 | SQL문장과 Mongo에서 사용하는 명령어를 비교한 것입니다. | 2015.09.30 | 798 |
143 | mongodb 2.6.6 설치(64bit) | 2015.09.30 | 399 |
142 | pom.xml에서 build.gradle로 변환 | 2015.09.14 | 653 |