JDBC practice_240305

Choi Suyeon·2024년 3월 6일

PreparedStatement의 like 사용

-바인드 변수( ? )는 like의 특수문자인 %와 함께 사용되면 Java에서 인식을 못한다.

String sql=“select ,, from 테이블명 where 컬럼명 ‘%?%PreparedStatement pstmt=con.prepareStatement( sql );
  
바인드변수에 값 설정
pstmt.setString( 1,)
  • 해결 : %를 Oracle 일반문자열로 만들어 바인드변수와 붙임( || ).
    % => ‘%’ || => ‘?%’ => ?||’%’ ( ‘%’|| ? ||’%’ )

ResultSetMetaData

DD를 사용하지 않고 select쿼리에서 사용하는 테이블의 스키마 정보를 얻는 객체.
ResultSet으로 부터 얻어진다.

1. ResultSet에서 ResultSetMetaData를 얻는다.
ResultSetMetaData rsmd = rs.getMetaData();

2. method를 사용하여 테이블 schema정보를 얻는다.
( desc 테이블명을 했을 때의 정보가 나옴 )
* 컬럼의 개수 : int columnCnt=rsmd.getColumnCount();
* 컬럼의 이름 얻기 : String columnName = rsmd.getColumnName( 인덱스 )
* 컬럼의 데이터 형 명 얻기 : String  columnLabel =rsmd.getColumnTypeName(인덱스)
* 컬럼의 데이터 형 크기 : int size =rsmd.precision(인덱스);
* 널 허용여부 : int flag =rsmd.isNullable(인덱스);

0개의 댓글