Category Archives: JAVA

[iBatis] LIKE 검색 구문 사용하기

iBatis를 사용하다 보니 또하나의 문제에 봉착했다.. LIKE 검색의 %기호를 인식하지 못하는 것이었다.

구글신에게 검색해 보고 다음과 같은 해결책을 얻을 수 있었다.

MySQL :
[code]SELECT * FROM tbl_name WHERE column_name LIKE “%$username$%”[/code]

ORACLE :
[code]SELECT * FROM tbl_name WHERE column_name LIKE  ‘%’ || #username# || ‘%'[/code]

SYBASE/SQL SERVER
[code]SELECT * from tbl_name WHERE column_name LIKE  ‘%’ + #username# + ‘%'[/code]

여기서 변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점을 알 필요가 있다.

#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.

하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.

JAVA에서 자주 쓰이는 형변환

자바에서 자주 쓰이는 형변환 시리즈를 모아보았다. 매번 까먹는 관계로 적어놔야 한다는;;;
출처는 이곳 입니다.

int to String

String str = Integer.toString(i);
String str = "" + i;

String to int

int i = Integer.parseInt(str);
int i = Integer.valueOf(str).intValue();

double to String

String str = Double.toString(d);

long to String

String str = Long.toString(l);

float to String

String str = Float.toString(f);

String to double

double d = Double.valueOf(str).doubleValue();

String to long

long l = Long.valueOf(str).longValue();
long l = Long.parseLong(str);

String to float

float f = Float.valueOf(str).floatValue();

decimal to binary

String binstr = Integer.toBinaryString(i);

decimal to hexadecimal

String hexstr = Integer.toString(i, 16);
String hexstr = Integer.toHexString(i);
Integer.toHexString( 0x10000 | i).substring(1).toUpperCase());

hexadecimal(String) to int

int i = Integer.valueOf("B8DA3", 16).intValue();
int i = Integer.parseInt("B8DA3", 16);

ASCII Code to String

String char = new Character((char)i).toString();

Integer to ASCII Code

int i = (int) c;

Integer to boolean

boolean b = (i != 0);

boolean to Integer

int i = (b)? 1 : 0;