Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQL
- jquery
- linux
- 오라클
- 리눅스
- Eclipse
- 자바
- 자바스크립트
- JavaScript
- java
- 주식 청약
- 맥
- 7월 공모주 청약 일정
- 제이쿼리
- IPO
- 6월 공모주 청약 일정
- 주식 청약 일정
- 공모주 청약
- 코드이그나이터
- 공모주 청약 일정
- MYSQL
- 주식
- 공모주
- css
- php
- Stock
- html
- codeigniter
- Stock ipo
- Oracle
Archives
- Today
- Total
개발자의 끄적끄적
[java/spring] iBatis/myBatis #와 $의 차이점 [펌] 본문
728x90
반응형
[java/spring] iBatis/myBatis #와 $의 차이점 [펌]
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 등등의 에러가 뜨게 된다
출처: https://marobiana.tistory.com/60 [Take Action]
반응형
'개발 > java & jsp' 카테고리의 다른 글
[JEUS] 제우스(JEUS)로 WAR 배포(DEPLOY) 방법 [펌] (0) | 2019.12.13 |
---|---|
[java / spring] ibatis 란?[펌] (0) | 2019.12.12 |
[jstl] JSTL - <c:set> 태그 사용법 [펌] (0) | 2019.12.10 |
[java & spring] 자바에서 List null 체크하는 법 [펌] (0) | 2019.12.10 |
[java & spring] svn clean or cleanup 방법 [링크] (0) | 2019.12.07 |
Comments