PreparedStatement에서 like 사용

김르르
Apr 12, 2021

--

  • ‘%’ like 문자열과 java의 bind변수를 함께 사용하면, bind변수를 인식하지 못한다

String str = “ select 컬럼명 from 테이블명 where 컬럼명 like %?% ”;

  • 해결 : % 기호를 문자열로 처리하고 바인드 변수와 붙여서 사용

String str = “select 컬럼명 from 테이블명 where 컬럼명 like ‘%’||?||‘%’ ”;

CallableStatement 의 사용

  • Procedure 를 호출할 때 사용

사용법)

  1. 드라이버 로딩
  2. 커넥션 얻기
  3. 쿼리문 생성객체 얻기 — CallableStatement cstmt = con.prepareCall(“{call 프로시저명( 값(java의 bind 변수로 처리함)…) }”);
  4. bind 변수의 값 할당

in parameter : procedure 외부의 값을 procedure 내부로 전달할 때

→ bind변수의 사용

cstmt.setInt(인덱스, 값);

cstmt.setString(인덱스,값);

out parameter : procedure 내부의 값을 procedure 외부로 내보낼 때 ( oracle의 bind 변수가 필요 )

5. Procedure 호출.

cstmt.execute();

6. out parameter에 할당된 결과 얻기.

(procedure가 호출되면 out parameter에 값이 할당된다. 그 값을 받는다.)

cstmt.getInt(인덱스);

cstmt.getString(인덱스);

String addr=cstmt.getString( 3 ); — 매개변수명은 사용할 수 없다.

int age=cstmt.getInt( 4 );

7.연결 끊기

--

--

김르르
김르르

Written by 김르르

0 Followers

르르입니다

No responses yet