1. JDBC 요약 (템플릿, 팔다리 에세이) :
try { a. 드라이버 패키지를 가져 와서 특정 드라이버 클래스를로드합니다. Class.forName ( "specific driver class"); b. 데이터베이스 연결 설정 = DriverManager.getConnection (...); c. 다음 객체를 가져옵니다. 연결을 통한 데이터베이스 운영 (Statement \ preparedStatement \ callablestatement) stmt = connection.createStatement (); d. (Query) 처리 결과 집합 rs = pstmt.executeQuery () while (rs.next ()) {rs.getXxx (. .);} } catch (ClassNotFoundException e) {...} catch (SQLException e) {... } catch (Exception e) {... } finally { // 여는 시퀀스가 닫는 시퀀스와 반대입니다 if ( rs! = null) rs.close () if (stmt! = null) stmt.close (); if (connection! = null) connection.close (); }
--jdbc에서 Class.forName ()을 제외하고는 ClassNotFoundException이 발생하고 다른 모든 메서드는 SQLException이 발생합니다.
2. CallableStatement : 저장 프로 시저, 저장 함수 호출
connection.prepareCall(参数:存储过程或存储函数名)
매개 변수 형식 :
저장 프로 시저 (반환 값없이 반환, out 매개 변수로 대체) :
{저장 프로 시저 이름 호출 (매개 변수 목록)}
저장 함수 (반환 값 반환 포함) :
{? = 저장 함수 이름 호출 (매개 변수 목록)}
저장 프로 시저 :
create or replace procedure addTwoNum ( num1 in number,num2 in number,result out number ) -- 1 + 2 ->3
as
begin
result := num1+num2 ;
end ;
강조 :
sqlplus를 통해 데이터베이스에 액세스하는 경우 다음을 열면됩니다.
다른 프로그램 (sqldevelop, navicate, JDBC)을 통해 데이터에 액세스하려면 OracleServiceSID 를 열면됩니다. OracleServiceSID, XxxListener
JDBC가 스토어드 프로 시저를 호출하는 단계 :
a. 저장 프로 시저 (CallableStatement)를 호출하는 객체 생성 cstmt = connection.prepareCall ( "...");
b. setXxx () cstmt.setInt (1, 30)를 통해 출력 매개 변수 값 처리
c. registerOutParameter를 통해 (...) Process output parameter type
d.cstmt.execute () execute
e. Accept output value (return value) getXxx ()
JDBC 호출 저장 기능 :
addTwoNumfunction (num1 in number, num2 in number)-1 + 2
return number
as
result number;
begin
result : = num1 + num2;
return result;
end;
/
JDBC call a stored function : the 차이가 저장된 함수 호출 procedure :
호출 할 때 매개 변수에주의하십시오. "{? = call addTwoNumfunction (?,?)}"
3. CLOB / BLOB 유형 처리
약간 큰 데이터 처리 :
a. 저장 경로 E : \ JDK_API_zh_CN.CHM
은 JDBC를 통해 파일 경로를 저장 한 다음 IO 작업에 따라 처리합니다.
예 : JDBC는 E : \ JDK_API_zh_CN.CHM 파일을 문자열 "E : \ JDK_API_zh_CN.CHM "데이터베이스에서 가져
오기 : 1."E : \ JDK_API_zh_CN.CHM "경로를 가져옵니다. 2.IO
b.
CLOB : 큰 텍스트 데이터 (소설-> 데이터)
BLOB : 바이너리
clob : 대용량 텍스트 데이터 문자 스트림 Reader Writer
저장소
1. 먼저 pstmt?를 전달하여 새로운 내용 (자리 표시 자)을
바꿉니다. 2. 그런 다음 pstmt.setCharacterStream (2, reader, (int) file.length ()); 이전 단계? 새로운 스트림으로 교체합니다. 세 번째 매개 변수는 Int 유형이어야합니다.
Take :
1. Pass Reader reader = rs.getCharacterStream ( "NOVEL"); Reader 개체에 cloc 유형의 데이터를 저장합니다
. 2. Writer를 통해 Reader를 출력하기 만하면 됩니다.
blob : 이진 바이트 스트림 InputStream OutputStream
및 CLOB 단계는 기본적으로 동일합니다. 차이점은 다음과 같습니다. setBinaryStream (...) getBinaryStream (...)