- ‘%’ like 문자열과 java의 bind변수를 함께 사용하면, bind변수를 인식하지 못한다
String str = “ select 컬럼명 from 테이블명 where 컬럼명 like %?% ”;
- 해결 : % 기호를 문자열로 처리하고 바인드 변수와 붙여서 사용
String str = “select 컬럼명 from 테이블명 where 컬럼명 like ‘%’||?||‘%’ ”;
CallableStatement 의 사용
- Procedure 를 호출할 때 사용
사용법)
- 드라이버 로딩
- 커넥션 얻기
- 쿼리문 생성객체 얻기 — CallableStatement cstmt = con.prepareCall(“{call 프로시저명( 값(java의 bind 변수로 처리함)…) }”);
- 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.연결 끊기