Postgres는 확장 가능합니다 데이터베이스 시스템. 백엔드에 자신의 기능을 추가 할 수 있습니다. 그런 다음 쿼리에서 호출하거나 자신의 데이터를 추가 할 수 있습니다. 유형. 이들은 고유 한 시설입니다.Postgres, 우리는 a 확장 세트API's. 일부 표준 드라이버의 핵심 내에서 실제로 사용합니다. 큰 개체 등을 구현하기위한 이러한 확장은
일부 확장에 액세스하려면 추가를 사용해야합니다. 의 방법org.토토 결과.connection클래스. 이 경우 의 반환 값을 사례를 제기해야합니다.driver.getConnection (). 예를 들어:
Connection db = driver.getConnection (url, username, password); // ... // 나중에 FastPath fp = ((org.토토 결과.connection) db) .getfastpathapi ();
공개 클래스 연결은 객체 구현을 확장합니다 java.lang.object | +---- org.토토 결과.connection
이것은 액세스에 사용되는 추가 방법입니다토토 결과의 확장. 에 의해 정의 된 메소드java.sql.connection나열되지 않았습니다.
public fastpath getfastpathi ()가 sqlexception
이것은 FastPath를 반환합니다API현재 연결의 경우. 그것은 주로 큰 개체에 의해 사용API.
이것을 사용하는 가장 좋은 방법은 다음과 같습니다.
import org.토토 결과.fastpath.*; ... FastPath fp = ((org.토토 결과.connection) myconn) .getfastPathapi ();MyConn이 열린 연결이있는 곳토토 결과.
반환 :FastPath 객체에 액세스 할 수 있습니다 의 함수토토 결과백엔드.
던지기 :FastPath에 의한 sqlexception 처음 초기화
public bargeobjectmanager getlargeobjectapi () 던지기 sqlexception이것은 큰 개체를 반환합니다API현재 연결의 경우
이것을 사용하는 가장 좋은 방법은 다음과 같습니다.
import org.토토 결과.largeobject.*; ... margeobjectmanager lo = ((org.토토 결과.connection) myconn) .getlargeobjectapi ();MyConn이 열린 연결이있는 곳토토 결과.
반환 :구현하는 대형 개체 그만큼API
던지기 :sqlexception에 의한 sqlexception 처음 초기화
public void addDatatype (문자열 유형, 문자열 이름)이것은 클라이언트 코드가 중 하나의 핸들러를 추가 할 수 있도록합니다. 토토 결과의 고유 한 데이터 유형. 일반적으로 데이터 유형은 아닙니다 드라이버에 의해 알려진 것은 resultSet.getObject ()에 의해 반환됩니다. pgobject 인스턴스. 이 방법을 사용하면 수업을 작성할 수 있습니다 pgobject를 연장하고 드라이버에게 유형 이름과 클래스 이름을 알려줍니다. 사용합니다. 이것의 아래쪽은이 방법을 호출해야한다는 것입니다. 연결이 이루어질 때마다.
이것을 사용하는 가장 좋은 방법은 다음과 같습니다.
... ((org.토토 결과.connection) myconn) .addatatype ( "mytype", "my.class.name"); ...MyConn이 열린 연결이있는 곳토토 결과. 그만큼 수업을 처리해야합니다org.토토 결과.util.pgobject.
Public Class FastPath는 객체를 확장합니다 java.lang.object | +---- org.토토 결과.fastpath.fastpath
FastPathisAPIlibpq 내에 존재합니다 c 인터페이스, 클라이언트 컴퓨터가 함수를 실행하도록 허용합니다. 데이터베이스 백엔드에서. 대부분의 클라이언트 코드는 필요하지 않습니다 이 방법을 사용하지만 큰 객체이기 때문에 제공됩니다API사용.
사용하려면를 가져와야합니다.org.토토 결과.fastpath패키지, 사용 선:
import org.토토 결과.fastpath.*;그런 다음 코드에서 A를 가져와야합니다.FastPath개체 :
FastPath fp = ((org.토토 결과.connection) conn) .getfastPathapi ();데이터베이스와 관련된 인스턴스를 반환합니다 명령을 발행하는 데 사용할 수있는 연결. 의 케이스Connectiontoorg.토토 결과.connection이 필요합니다.getfastPathapi ()는 확장 방법이 아닙니다 의 일부JDBC. 일단 당신은FastPath인스턴스,를 사용할 수 있습니다FastPath ()실행 방법 a 백엔드 기능.
참조 : FastPathfastPatharg, BARGEOBJECT
Public Object FastPath (int fnid, 부울 결과 유형, FastPatharg args []) sqlexception 던지기
토토 결과 백엔드로 함수 호출을 보냅니다.
매개 변수 :FNID- 함수 ID resultType- 결과가 정수 인 경우 사실, 다른 사람의 거짓 결과 Args- 전달할 Fast Patharguments FastPath
반환 :null 데이터가없는 경우, 정수 정수 결과 또는 바이트 [] 그렇지 않으면
public Object FastPath (문자열 이름, 부울 결과 유형, FastPatharg args []) sqlexception 던지기
토토 결과 백엔드로 함수 호출을 보냅니다 이름.
참고 :절차 이름에 대한 매핑 기능을 수행하려면 ID가 존재해야합니다 addfunction ()에 대한 이전 호출. 이것은입니다 기능 ID가 Can/May로 호출하는 선호하는 방법 백엔드 버전간에 변경. For an 이것이 어떻게 작동하는지에 대한 예를 참조하십시오 org.토토 결과.largeobject
매개 변수 :이름 - 함수 이름 resultType - 결과가 정수 인 경우, 다른 사람의 거짓 결과 Args- 전달할 Fast Patharguments FastPath
반환 :null 데이터가없는 경우, IF 인 경우 정수 정수 결과 또는 바이트 [] 그렇지 않으면
참조 : BARGEOBJECT
public int getInteger (문자열 이름, FastPatharg args []) sqlexception 던지기
이 편의 방법은 반환을 가정합니다 가치는 정수입니다
매개 변수 :이름 - 기능 이름 args- 기능 인수
반환 :정수 결과
던지기 :데이터베이스 액세스 인 경우 sqlexection 오류가 발생하거나 결과가 없음
public byte [] getData (문자열 이름, FastPatharg args []) sqlexception 던지기
이 편의 방법은 반품을 가정합니다 값은 이진 데이터입니다.
매개 변수 :이름 - 기능 이름 args- 기능 인수
반환 :바이트 [] 결과 포함 배열
던지기 :sqlexection 데이터베이스 액세스 인 경우 오류가 발생하거나 결과가 없음
public void addfunction (문자열 이름, int fnid)
이것은 우리의 룩업 테이블에 함수를 추가합니다. 사용자 코드 사용해야합니다.추가 기능메소드는 쿼리를 기반으로하는 방법이 아닙니다. OID 코딩. 함수의 OID는 아닙니다 다른 서버에서도 정적을 유지하도록 보장됩니다 같은 버전의.
public void addfactions (resultet rs) 던지기 sqlexception
이것은 aresultSet두 열이 포함되어 있습니다. 1 열에는 함수가 포함되어 있습니다 이름, 열 2의 OID. 전체를 읽습니다resultSet, 값을 기능 테이블.
중요 :기억Close ()theresultSet이것을 호출 한 후!
함수 이름에 대한 구현 참고 조회 :토토 결과은 함수 ID를 저장합니다 그리고 PG_PROC 테이블의 해당 이름. 쿼리 대신 로컬로 속도를 높이기 위해 필요한 경우 해당 테이블의 각 기능, ahashtable사용됩니다. 또한, 필수 기능만이 여기에 입력됩니다 테이블, 연결 시간을 빠르게 유지합니다 가능한.
theorg.토토 결과.largeobject클래스 시작시 쿼리를 수행하고 전달합니다 반품resultSetto 그만큼addFunctions ()메소드 여기. 이 작업이 완료되면 큰 대상API이름 별 함수.
수동으로 변환한다고 생각하지 마십시오 OID가 작동합니다. 좋아, 그들은 지금은 할 것이다 그들은 개발 중에 변화 할 수 있습니다 (일부가있었습니다 V7.0에 대한 논의 부당한 두통을 방지하기 위해 구현되었습니다 미래.
참조 : BARGEOBJECTMANAGER
public int getId (문자열 이름)가 sqlexception
이것은 이름으로 연결된 함수 ID를 반환합니다 addFunction () 또는 addFunctions ()가 호출되지 않은 경우 이 이름의 경우 Sqlexception이 발생합니다.
공개 클래스 FastPatharg는 객체를 확장합니다 java.lang.object | +---- org.토토 결과.fastpath.fastpatharg
각 FastPath 호출은 인수 배열이 필요합니다 호출되는 함수에 따라 숫자 및 유형. 이것 클래스는 이것을 제공하는 데 필요한 방법을 구현합니다 능력.
이것을 사용하는 방법에 대한 예는 참조하십시오.org.토토 결과.largeobject패키지.
참조 : FastPath, BARGEOBJECTMANAGER, BARGEOBJECT
Public FastPatharg (int value)
정수로 구성된 인수를 구성합니다 값
매개 변수 :value -int 값 설정
Public FastPatharg (바이트 바이트 [])
배열로 구성된 인수를 구성합니다 바이트
매개 변수 :바이트 - 매장 배열
Public FastPatharg (byte buf [], int off, int len)
a의 일부로 구성된 인수를 구성합니다 바이트 어레이
매개 변수 :
소스 배열
배열 내 오프셋
포함 할 데이터 길이
Public FastPatharg (String S)
a로 구성된 인수를 구성합니다 끈.
토토 결과세트가 있습니다 기하학적 기능을 테이블에 저장할 수있는 데이터 유형. 여기에는 단일 포인트, 라인 및 다각형이 포함됩니다. 우리는 지원합니다 org.토토 결과.geometric 패키지와 함께 Java의 이러한 유형. 여기에는 연장되는 클래스가 포함되어 있습니다 org.토토 결과.util.pgobject 클래스. 해당 클래스를 참조하십시오 자신의 데이터 유형 핸들러를 구현하는 방법에 대한 자세한 내용.
클래스 org.토토 결과.geometric.pgbox java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgbox 공개 클래스 pgbox는 pgobject emplements serializable을 확장합니다. 복제 가능 이것은 상자 데이터 유형을 나타냅니다.토토 결과. 변수 공개 pgpoint 포인트 [] 이것들은 상자의 두 코너 포인트입니다. 생성자 공개 PGBox (Double X1, 이중 Y1, 더블 X2, 이중 Y2) 매개 변수 : X1- 첫 번째 X 좌표 Y1- 첫 번째 Y 좌표 x2 -두 번째 x 좌표 Y2- 두 번째 Y 좌표 공개 PGBox (PGPoint P1, PGPoint P2) 매개 변수 : P1- 첫 번째 포인트 P2- 두 번째 포인트 공개 pgbox (문자열 s)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과 구문의 상자 정의 던지기 : sqlexception 정의가 유효하지 않은 경우 public pgbox () 필수 생성자 행동 양식 public void setValue (문자열 값)는 sqlexception을 던졌습니다 이 메소드는이 객체의 값을 설정합니다. 그럴 것입니다 재정의하지만 여전히 서브 클래스로 호출됩니다. 매개 변수 : 값 - 값의 문자열 표현 물체 던지기 : sqlexception 이 유형에 대해 값이 유효하지 않으면 던졌습니다 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgbox토토 결과재정의 : 클래스 pgobject의 getValue 클래스 org.토토 결과.geometric.pgcircle java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgcircle 공개 클래스 pgcircle은 pgobject emplements serializable을 확장합니다. 복제 가능 이것은를 나타냅니다.토토 결과의 원형 데이터 유형, 포인트로 구성됩니다 그리고 반경 변수 공개 PGPoint 센터 이것이 중심점입니다 공개 이중 반경 이것은 반경입니다 생성자 공개 pgcircle (Double X, 더블 Y, 더블 r) 매개 변수 : X- 센터 좌표 Y- 센터 좌표 R- 원의 반경 공개 pgcircle (pgpoint c, 더블 r) 매개 변수 : C- 원의 중심을 설명하는 PGPoint R- 원의 반경 공개 pgcircle (문자열 s)은 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 공개 pgcircle () 이 생성자는 드라이버가 사용합니다. 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgcircle토토 결과재정의 : 클래스 pgobject의 getValue 클래스 org.토토 결과.geometric.pgline java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgline 공개 클래스 pgline은 pgobject emplements serializable을 확장합니다. 복제 가능 이것은 두 점으로 구성된 선을 구현합니다. 현재 라인입니다 백엔드에서 아직 구현되지 않았지만이 클래스는 준비가 완료되었습니다. 변수 공개 pgpoint 포인트 [] 이것들은 두 가지 요점입니다. 생성자 공개 pgline (Double x1, 이중 Y1, 더블 X2, 이중 Y2) 매개 변수 : X1- 첫 번째 포인트의 좌표 Y1- 첫 번째 포인트의 좌표 x2- 두 번째 포인트의 좌표 Y2- 두 번째 포인트의 좌표 공개 PGLine (PGPoint P1, PGPoint P2) 매개 변수 : P1- 첫 번째 포인트 P2- 두 번째 포인트 public pgline (String S)은 sqlexception을 던집니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 공개 pgline () 운전자가 필요합니다 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 라인 세그먼트의 정의 통사론 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgline토토 결과재정의 : 클래스 pgobject의 getValue 클래스 org.토토 결과.geometric.pglseg java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pglseg 공개 클래스 PGLSEG는 pgobject emplements serializable을 확장합니다. 복제 가능 이것은 두 지점으로 구성된 LSEG (라인 세그먼트)를 구현합니다. 변수 공개 pgpoint 포인트 [] 이것들은 두 가지 요점입니다. 생성자 공개 PGLSEG (Double X1, 이중 Y1, 더블 X2, 이중 Y2) 매개 변수 : X1- 첫 번째 포인트의 좌표 Y1- 첫 번째 포인트의 좌표 x2- 두 번째 포인트의 좌표 Y2- 두 번째 포인트의 좌표 공개 PGLSEG (PGPoint P1, PGPoint P2) 매개 변수 : P1- 첫 번째 포인트 P2- 두 번째 포인트 Public PGLSEG (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 public pglseg () 운전자가 필요합니다 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 라인 세그먼트의 정의 통사론 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 PGLSEG토토 결과재정의 : 클래스 pgobject의 getValue 클래스 org.토토 결과.geometric.pgpath java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgpath 공개 클래스 pgpath는 pgobject emplements serializable을 확장합니다. 복제 가능 이것은 경로를 구현합니다 (곱하기 세그먼트 라인. 닫은) 변수 공개 부울 오픈 경로가 열려 있으면 사실, 닫으면 거짓 공개 pgpoint 포인트 [] 이 경로를 정의하는 포인트 생성자 public pgpath (pgpoint points [], 부울 오픈) 매개 변수 : 포인트 - 경로를 정의하는 pgpoint OPEN- True 경로가 열린 경우, 닫힌 경우 False public pgpath () 운전자가 필요합니다 public pgpath (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문의 경로 정의 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 이것은에 의해 예상되는 구문에서 다각형을 반환합니다.토토 결과재정의 : 클래스 pgobject의 getValue 공개 부울 isopen () 경로가 열려 있으면 참으로 반환됩니다 공개 부울 isclosed () 경로가 닫히면 참으로 반환됩니다 공개 void closepath () 경로를 닫은 것으로 표시합니다 공개 void OpenPath () 경로를 열린 것으로 표시합니다 클래스 org.토토 결과.geometric.pgpoint java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgpoint 공개 클래스 pgpoint는 pgobject emplements serializable, 복제 가능 이것은 Double을 사용하는 것을 제외하고는 java.awt.point의 버전을 구현합니다. 좌표를 나타냅니다. 포인트 데이터 유형에 매핑토토 결과. 변수 공개 더블 X 포인트의 x 좌표 공개 이중 Y 요점의 y 좌표 생성자 공개 PGPoint (Double X, 이중 Y) 매개 변수 : x- 좌표 Y- 좌표 public pgpoint (문자열 값)는 sqlexception을 던졌습니다 이것은 주로 다른 기하학적 유형에서 불러옵니다. 포인트는 그들의 정의에 포함됩니다. 매개 변수 : 값 - 토토 결과 에서이 지점의 정의 통사론 공개 pgpoint () 운전자가 필요합니다 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문 에서이 지점의 정의 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgpoint토토 결과재정의 : 클래스 pgobject의 getValue 공개 void 번역 (int x, in y) 포인트를 공급 금액으로 번역하십시오. 매개 변수 : x- x 축에 추가 할 정수 금액 y- y 축에 추가 할 정수 금액 공개 void Translate (Double X, 이중 Y) 포인트를 공급 금액으로 번역하십시오. 매개 변수 : X- X 축에 추가 할 이중량 y- y 축에 추가 할 이중량 공개 무효 이동 (int x, in y) 지점을 제공된 좌표로 이동합니다. 매개 변수 : X- 정수 좌표 Y- 정수 좌표 공개 무효 이동 (Double X, 이중 Y) 지점을 제공된 좌표로 이동합니다. 매개 변수 : X- 이중 좌표 Y- 이중 좌표 공개 void setlocation (int x, in y) 지점을 제공된 좌표로 이동합니다. 참조하십시오 java.awt.point 이에 대한 설명 매개 변수 : X- 정수 좌표 Y- 정수 좌표 또한 참조 : 가리키다 공개 void setlocation (point p) 지점을 제공 한 java.awt.point를 참조하십시오 java.awt.point 이에 대한 설명 매개 변수 : P- 이동 지점 또한 참조 : 가리키다 클래스 org.토토 결과.geometric.pgpolygon java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.geometric.pgpolygon 공개 클래스 pgpolygon은 pgobject emplements serializable을 확장합니다. 복제 가능 이것은 토토 결과 내의 다각형 데이터 유형을 구현합니다. 변수 공개 pgpoint 포인트 [] 다각형을 정의하는 포인트 생성자 공개 pgpolygon (pgpoint points []) 다양한 pgpoint를 사용하여 다각형을 만듭니다 매개 변수 : 포인트 - 다각형을 정의하는 점 공개 pgpolygon (String s)은 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문에서 원의 정의. 던지기 : sqlexception 변환 실패시 공개 pgpolygon () 운전자가 필요합니다 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- Postgresql의 구문에서 다각형의 정의 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgpolygon토토 결과재정의 : 클래스 pgobject의 getValue
대형 개체가 표준에서 지원됩니다JDBC사양. 그러나 그 인터페이스입니다 제한 및API토토 결과 로컬 파일이라면.
org.토토 결과.largeobject 패키지는 Java에게 제공합니다 libpq c 인터페이스의 큰 객체API. 그것은 두 개의 클래스로 구성되어 있습니다.BARGEOBJECTMANAGER큰 물체를 열고 삭제하고BARGEOBJECT개인을 다루는 물체.
public class bargeobject는 객체를 확장합니다 java.lang.object | +---- org.토토 결과.largeobject.largeobject
이 클래스는 큰 객체 인터페이스를 구현합니다.토토 결과.
실행하는 데 필요한 기본 방법을 제공합니다 인터페이스, 제공하는 한 쌍의 메소드입력 스트림및outputStream이 개체의 클래스.
일반적으로 클라이언트 코드는 getAsciistream을 사용합니다. getBinaryStream 또는 getUnicodestream 메소드에서resultSet또는 setASCiistream, setbinarystream 또는 setunicodestream 메소드에서preparedstatement큰 액세스 사물.
그러나 때로는 큰 물체에 대한 레벨 액세스가 더 낮습니다 필수, 그것은에 의해 지원되지 않습니다JDBC사양.
org.토토 결과.largeobject.largeobjectmanager를 참조하십시오 큰 물체에 액세스하는 방법 또는 만드는 방법 하나.
참조 : BARGEOBJECTMANAGER
파일 시작부터 찾는 것을 나타냅니다
현재 위치에서 찾는 것을 나타냅니다
파일 끝에서 찾는 것을 나타냅니다
public int getoid ()
이 OID를 반환BARGEOBJECT
public void close ()가 sqlexception 던지기
이 메소드는 객체를 닫습니다. 당신은 전화해서는 안됩니다 이 객체의 메소드는 다음과 같습니다.
public byte [] read (int len) 던지기 sqlexception
객체에서 일부 데이터를 읽고 바이트 [] 배열
public void read (byte buf [], int off, int len) sqlexception 던지기
객체에서 일부 데이터를 기존으로 읽습니다 정렬
매개 변수 :
대상 배열
배열 내 오프셋
읽을 바이트 수
public void write (byte buf []) 던지기 sqlexception
객체에 배열을 씁니다
Public void write (byte buf [], int off, int len) sqlexception 던지기
배열에서 객체에 일부 데이터를 씁니다
매개 변수 :
대상 배열
배열 내 오프셋
쓰기 할 바이트 수
공개 클래스 BARGEOBJECTMANAGER는 객체를 확장합니다 java.lang.object | +---- org.토토 결과.largeobject.largeobjectmanager
이 클래스는 큰 객체 인터페이스를 구현합니다.토토 결과. 그것은 제공합니다 클라이언트 코드를 생성, 열고 삭제할 수있는 메소드 데이터베이스의 큰 객체. 객체를 열 때, an 인스턴스org.토토 결과.largeobject.largeobjectis 반환 된 후 그 방법에 대한 액세스를 허용합니다 물체.
이 클래스는 만 만들 수 있습니다 org.토토 결과.connection. 이 수업에 액세스하려면 사용하십시오 코드의 다음 부분 :
import org.토토 결과.largeobject.*; 연결 연결; BARGEOBJECTMANAGER LOBJ; // ... 연결을 열어주는 코드 ... lobj = ((org.토토 결과.connection) myconn) .getlargeobjectapi ();
일반적으로 클라이언트 코드는 getAsciistream을 사용합니다. getBinaryStream 또는 resultSet의 getUnicodestream 메소드, OR setASCiistream, setBinaryStream 또는 setunicodestream 메소드 큰 물체에 액세스하기 위해 준비된 상태에서. 하지만, 때로는 큰 물체에 대한 낮은 수준의 액세스가 필요합니다. 지원되지 않습니다.JDBC사양.
org.토토 결과.largeobject.largeobject를 참조하십시오 큰 물체의 내용을 조작하십시오.
이 모드는 우리가 an에 쓰고 싶은 것을 나타냅니다 물체.
이 모드는 객체를 읽고 싶다는 것을 나타냅니다.
이 모드는 기본입니다. 그것은 우리가 원하는 것을 나타냅니다 큰 물체에 대한 액세스를 읽고 쓰십시오.
public largeobject open (int oid) 던지기 sqlexception
이것은 기존의 큰 객체를 기준으로 엽니 다 OID. 이 방법은 읽기 및 쓰기 액세스가 있다고 가정합니다 필수 (기본값).
Public Largeobject Open (int oid, int mode) sqlexception
이것은 기존의 큰 객체를 기준으로 엽니 다 OID, 액세스 모드를 설정할 수 있습니다.
public int create ()가 sqlexception 던지기
이것은 큰 물체를 생성하여 OID를 반환합니다. 그것 새 객체에 대한 기본값을 읽습니다 속성.
public int create (int mode) 던지기 sqlexception
이것은 큰 물체를 생성하여 OID를 반환합니다 액세스 모드를 설정합니다.
public void delete (int oid) 던지기 sqlexception
이것은 큰 개체를 삭제합니다.
Public Void Unlink (int oid) 던지기 sqlexception
이것은 큰 객체를 삭제합니다. 그것은 동일합니다 삭제 방법, C로 제공됩니다.API용도"Unlink".
토토 결과정상이 아닙니다SQL데이터베이스. 더 많다 대부분의 다른 데이터베이스보다 확장 가능하며 객체를 지원합니다 고유 한 지향적 인 기능.
이것의 결과 중 하나는 하나를 가질 수 있다는 것입니다. 테이블은 다른 테이블의 행을 참조하십시오. 예를 들어:
test = 테이블 사용자 만들기 (사용자 이름 이름, fullName 텍스트); 만들다 test = 테이블 서버 생성 (ServerName 이름, 관리자 사용자); 만들다 test = 사용자 값에 삽입 ( 'Peter', 'Peter Mount'); 2610132 삽입 1 Test = 서버 값에 삽입 ( 'Maidast', 2610132 :: 사용자); 삽입 2610133 1 test = 사용자에서 선택 *; 사용자 이름 | fullName --------+------------- 피터 | 피터 마운트 (1 줄) test = select *에서 서버에서; ServerName | 관리자 ----------+------- Maidast | 2610132 (1 행)좋아요, 위의 예는 테이블 이름을 사용할 수 있음을 보여줍니다. 필드와 행의 OID 값은 해당 필드에 저장됩니다.
이것이 Java와 어떤 관련이 있습니까?
Java에서는 객체를 스트림에 스트림에 저장할 수 있습니다. 클래스는 java.io.serializable 인터페이스를 구현합니다. 이것 객체 직렬화로 알려진 프로세스는 저장에 사용될 수 있습니다. 데이터베이스에 복잡한 개체.
지금,JDBC, 당신은 가질 것입니다 큰 물체를 사용하여 저장합니다. 그러나 당신은 할 수 없습니다 해당 객체에서 쿼리를 수행합니다.
org.토토 결과.util.serialize 클래스의 일은 물체를 테이블로 저장하는 수단을 제공하고 테이블에서 그 물체를 검색하십시오. 대부분의 경우, 당신은 그렇지 않을 것입니다 이 클래스에 직접 액세스해야하지만 proadestatement.setobject () 및 resultset.getObject () 행동 양식. 이러한 메소드는 객체 클래스 이름을 확인합니다 데이터베이스의 테이블에 대해 경기가 발견되면 객체가 직렬화 된 객체라고 가정하고 검색합니다. 그 테이블에서. 그렇듯이 객체에 다른 것이 포함 된 경우 직렬화 된 물체, 그런 다음 나무 아래로 되풀이됩니다.
소리가 복잡합니까? 사실, 그것은 내가 쓴 것보다 간단합니다 - 설명하기가 어렵습니다.
이 클래스에 액세스 할 수있는 유일한 시간은 생성 () 메소드. 이들은 드라이버가 사용하지 않지만 문제입니다 데이터베이스에 하나 이상의 "테이블 작성"문장을 기준으로 직렬화하고자하는 자바 객체 또는 클래스.
오, 마지막 한 가지. 객체가 다음과 같은 선이 포함 된 경우
공개 int oid;그런 다음, 객체가 테이블에서 검색되면 설정됩니다. 테이블 내의 OID에. 그런 다음 객체가 수정되면 다시 직렬화, 기존 항목이 업데이트됩니다.
OID 변수가 없으면 객체가있을 때 직렬화 된 경우 항상 테이블에 삽입됩니다. 테이블의 기존 항목은 보존됩니다.
직렬화 전에 OID를 0으로 설정하면 삽입 할 객체. 이를 통해 객체를 복제 할 수 있습니다 데이터베이스에서.
클래스 org.토토 결과.util.serialize java.lang.object | +---- org.토토 결과.util.serialize 공개 클래스 직렬화는 객체를 확장합니다 이 클래스는 토토 결과의 객체 지향 기능을 사용하여 Java를 저장합니다. 사물. Java 클래스 이름을 테이블에 매핑 하여이 작업을 수행합니다. 데이터 베이스. 이 새 테이블의 각 항목은 직렬화 된 것을 나타냅니다. 이 수업의 인스턴스. 각 항목에 OID (객체 식별자)가 있으므로 이 OID는 다른 테이블에 포함될 수 있습니다. 이것은 보여주기에는 너무 복잡합니다 여기에서 메인 문서에 더 자세히 문서화됩니다. 생성자 공개 직렬화 (연결 C, 문자열 유형) sqlexception을 던졌습니다 이것은 직렬화에 사용될 수있는 인스턴스를 만듭니다. 또는 토토 결과 테이블에서 Java 객체를 제조하십시오. 행동 양식 공개 대상 페치 (int oid)는 sqlexception을 던졌습니다 OID가 주어지면 테이블에서 객체를 가져옵니다. 매개 변수 : OID- 물체의 OID 보고: OID와 관련된 물체 던지기 : sqlexception 오류가 발생합니다 Public Int Store (Object O)는 sqlexception을 던집니다 이것은 물체를 테이블에 저장하여 OID를 반환합니다. 객체에 OID라는 int가 있고 0이면 해당 값은 OID에 사용되며 테이블이 업데이트됩니다. 만약 OID의 값은 0이면 새 행이 생성되고 값이 생성됩니다. OID가 객체에 설정됩니다. 이것은 객체의 값을 가능하게합니다 업데이트 할 수있는 데이터베이스. 객체에 OID라고 불리는 int가없는 경우 객체가 저장됩니다. 그러나 물체가 나중에 검색되면 수정되고 다시 저장되면 새로운 상태가 표, 이전 항목을 덮어 쓰지 않습니다. 매개 변수 : O- 저장 대상 (직렬화 가능해야 함) 보고: 저장된 물체의 OID 던지기 : sqlexception 오류가 발생합니다 공개 정적 무효 생성 (Connection Con, 객체 o) sqlexection을 던집니다 이 방법은 드라이버가 사용하지 않지만 일련화 가능한 Java 객체가 주어진 테이블. 전에 사용해야합니다 객체를 직렬화합니다. 매개 변수 : C- 데이터베이스 연결 O- 기본 테이블에 객체를 켜십시오 던지기 : sqlexception 오류가 발생합니다 보고: OID와 관련된 물체 던지기 : sqlexception 오류가 발생합니다 Public Int Store (Object O)는 sqlexception을 던집니다 이것은 물체를 테이블에 저장하여 OID를 반환합니다. 객체에 OID라는 int가 있고 0이면 해당 값은 OID에 사용되며 테이블이 업데이트됩니다. 만약 OID의 값은 0이면 새 행이 생성되고 값이 생성됩니다. OID가 객체에 설정됩니다. 이것은 객체의 값을 가능하게합니다 업데이트 할 수있는 데이터베이스. 객체에 OID라고 불리는 int가없는 경우 객체가 저장됩니다. 그러나 물체가 나중에 검색되면 수정되고 다시 저장되면 새로운 상태가 표, 이전 항목을 덮어 쓰지 않습니다. 매개 변수 : O- 저장 대상 (직렬화 가능해야 함) 보고: 저장된 물체의 OID 던지기 : sqlexception 오류가 발생합니다 공개 정적 무효 생성 (Connection Con, 객체 o) sqlexection을 던집니다 이 방법은 드라이버가 사용하지 않지만 일련화 가능한 Java 객체가 주어진 테이블. 전에 사용해야합니다 객체를 직렬화합니다. 매개 변수 : C- 데이터베이스 연결 O- 기본 테이블에 객체를 켜십시오 던지기 : sqlexception 오류가 발생합니다 공개 정적 무효 생성 (Connection Con, 클래스 C) Sqlexception을 던집니다 이 방법은 드라이버가 사용하지 않지만 일련화 가능한 Java 객체가 주어진 테이블. 전에 사용해야합니다 객체를 직렬화합니다. 매개 변수 : C- 데이터베이스 연결 O-베이스 테이블에 클래스 던지기 : sqlexception 오류가 발생합니다 public static string to토토 결과 (문자열 이름)은 sqlexception을 던졌습니다 이것은 Java 클래스 이름을 A로 변환합니다.토토 결과테이블, by 교체. 와 함께 _ 이 때문에 클래스 이름은 이름에 _가 없을 수 있습니다. 또 다른 한계는 전체 클래스 이름 (포함 패키지)는 31 자 미만일 수 없습니다 (한계 토토 결과에 의해 강제). 매개 변수 : 이름 - 클래스 이름 보고: 토토 결과 테이블 이름 던지기 : sqlexception 오류가 발생합니다 public static string toclassName (문자열 이름)은 sqlexception을 던졌습니다 이것은 a를 변환합니다.토토 결과Java 클래스 이름으로 테이블 _로 교체. 매개 변수 : 이름 -Postgresql 테이블 이름 보고: 클래스 이름 던지기 : sqlexception 오류가 발생합니다 유틸리티 클래스 org.토토 결과.util 패키지에는 내부에서 사용되는 클래스가 포함되어 있습니다. 기본 드라이버 및 기타 확장. 클래스 org.토토 결과.util.pgmoney java.lang.object | +---- org.토토 결과.util.pgobject | +---- org.토토 결과.util.pgmoney 공개 클래스 PGMoney는 PGOBJECT AMPENTENS SERIALIZABLE를 확장합니다. 복제 가능 이것은 토토 결과 money 유형을 처리하는 클래스를 구현합니다. 변수 공개 더블 발 필드의 가치 생성자 공개 pgmoney (이중 가치) 매개 변수 : 가치 - 필드 공개 pgmoney (문자열 값)는 sqlexception을 던졌습니다 이것은 주로 다른 기하학적 유형에서 불러옵니다. 포인트는 그들의 정의 안에 내려집니다. 매개 변수 : 값 - 토토 결과 에서이 지점의 정의 통사론 공개 pgmoney () 운전자가 필요합니다 행동 양식 public void setValue (String S)는 sqlexception을 던졌습니다 매개 변수 : S- 토토 결과의 구문 에서이 지점의 정의 던지기 : sqlexception 변환 실패시 재정의 : 클래스 pgobject의 setValue Public Boolean Equals (Object OBJ) 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 pgobject와 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 클래스 pgobject 클론 공개 문자열 getValue () 보고: 에 의해 예상되는 구문의 pgpoint토토 결과재정의 : 클래스 pgobject의 getValue 클래스 org.토토 결과.util.pgobject java.lang.object | +---- org.토토 결과.util.pgobject 공개 클래스 pgobject 확장 객체 구현 직렬화 가능 복제 가능 이 클래스는에 의해 알려지지 않은 데이터 유형을 설명하는 데 사용됩니다.JDBC표준. org.토토 결과.connection에 대한 호출은 이것을 연장하는 클래스를 허용합니다. 클래스는 명명 된 유형과 연관됩니다. 이것이 방법입니다 org.토토 결과.geometric 패키지가 작동합니다. resultSet.getObject ()는 모든 유형에 대해이 클래스를 반환합니다. 자체 핸들러가있는 것은 인식되지 않습니다. 이로 인해토토 결과데이터 유형이 지원됩니다. 생성자 public pgobject () org.토토 결과.connection.getObject ()로 호출됩니다 객체를 만듭니다. 행동 양식 공개 최종 void settype (문자열 유형) 이 메소드는이 객체의 유형을 설정합니다. 서브 클래스로 확장해서는 안하므로 최종 매개 변수 : 유형 - 개체 유형을 설명하는 문자열 public void setValue (문자열 값)는 sqlexception을 던졌습니다 이 메소드는이 객체의 값을 설정합니다. 그럴 것입니다 우선. 매개 변수 : 값 - 값의 문자열 표현 물체 던지기 : sqlexception 이 유형에 대해 값이 유효하지 않으면 던졌습니다 공개 최종 문자열 gettype () 이것은 대상의 수명 동안 변할 수 없으므로 결정적인. 보고: 이 개체의 유형 이름 공개 문자열 getValue () 객체의 값을 반환하려면 재정의해야합니다. 에 필요한 형태로토토 결과. 보고: 이 개체의 가치 Public Boolean Equals (Object OBJ) 객체를 비교할 수 있도록 재정의해야합니다 매개 변수 : OBJ- 비교할 객체 보고: 두 상자가 동일하다면 사실입니다 재정의 : 클래스 객체에서 동일합니다 공개 대상 클론 () 객체를 복제 할 수 있도록 무시해야합니다. 재정의 : 클래스 객체에서 클론 공개 문자열 tostring () 여기에는 여기에 정의되므로 사용자 코드를 무시할 필요는 없습니다. 보고: 이 개체의 값,에 의해 예상되는 구문에서토토 결과재정의 : 클래스 객체의 Tostring 클래스 org.토토 결과.util.pgtokenizer java.lang.object | +---- org.토토 결과.util.pgtokenizer 공개 클래스 pgtokenizer는 객체를 확장합니다 이 클래스는의 텍스트 출력을 토큰 화하는 데 사용됩니다.토토 결과. 우리는 StringTokenizer를 사용하여이를 수행 할 수 있었지만 필요했습니다. '(' ')' '[' ']' '<' 'and' '의 중첩을 처리하려면 기하학적 데이터 유형. 주로 기하학적 클래스에서 사용하지만 구문 분석에 유용합니다. 사용자 정의 데이터 유형의 모든 출력에서 출력토토 결과. 또한 참조 : PGBox, PGCircle, PGLSEG, PGPATH, PGPOINT, PGPOLYGON 생성자 public pgtokenizer (String String, char delim) 토큰 화기를 만듭니다. 매개 변수 : 문자열 - 토큰이 포함되어 있습니다 DELIM- 토큰을 분할하는 단일 문자 행동 양식 public int tokenize (문자열 문자열, char delim) 이것은 새로운 문자열 및/또는 로이 토큰 화기를 재설정합니다 구분기. 매개 변수 : 문자열 - 토큰이 포함되어 있습니다 DELIM- 토큰을 분할하는 단일 문자 public int getsize () 보고: 사용 가능한 토큰 수 공개 문자열 gettoken (int n) 매개 변수 : n- 토큰 번호 (0 ... getsize () -1) 보고: 토큰 값 공개 pgtokenizer tokenizetoken (int n, char delim) 이것은 토큰 중 하나를 기반으로 새로운 토큰 화기를 반환합니다. 그만큼 기하학적 데이터 유형은 이것을 사용하여 중첩 된 토큰을 처리합니다 (일반적으로 pgpoint). 매개 변수 : n- 토큰 번호 (0 ... getsize () -1) DELIM- 사용하는 분리기 보고: 토큰을 기반으로 한 새로운 pgtokenizer 인스턴스 공용 정적 문자열 제거 (문자열 s, 문자열 l, 문자열 t) 이것은 문자열에서 리드/후행 문자열을 제거합니다 매개 변수 : S- 소스 문자열 L- 제거 할 선행 문자열 t- 제거 할 스트링 보고: 리드/후행 문자열이없는 문자열 공개 void 제거 (String L, 문자열 t) 이것은 모든 토큰에서 리드/후행 현을 제거합니다 매개 변수 : L- 제거 할 선행 문자열 t- 제거 할 스트링 공개 정적 문자열 removepara (문자열 s) 문자열의 시작과 끝에서 제거 (및) 매개 변수 : s- 제거 할 문자열 보고: (또는)없는 문자열 공개 void removepara () 모든 토큰의 시작과 끝에서 제거 (및) 보고: (또는)없는 문자열 공개 정적 문자열 제거 상자 (문자열 s) 문자열의 시작과 끝에서 [그리고]를 제거합니다. 매개 변수 : s- 제거 할 문자열 보고: [또는]없는 문자열 공개 void removebox () 모든 토큰의 시작과 끝에서 [및 [및]를 제거합니다. 보고: [또는]없는 문자열 공개 정적 문자열 removeAngle (String S) 문자열의 시작과 끝에서 <and 제거 매개 변수 : s- 제거 할 문자열 보고: <또는가없는 문자열 공개 void removeangle () 모든 토큰의 시작과 끝에서 <and 제거 보고: <또는가없는 문자열 클래스 org.토토 결과.util.serialize 이것은 객체 직렬화 하에서 앞서 문서화되었습니다. 클래스 org.토토 결과.util.unixcrypt java.lang.object | +---- org.토토 결과.util.unixcrypt 공개 클래스 UnixCrypt는 객체를 확장합니다 이 클래스는 우리에게 비밀번호를 암호화 할 수있는 기능을 제공합니다. 네트워크 스트림을 통해 보냈습니다 비밀번호와 Unix와 암호를 암호화하고 비교하는 정적 메소드가 포함되어 있습니다. 암호화 된 암호. 원본 소스는 John Dumas의 Java Crypt 페이지를 참조하십시오. http://www.zeh.com/local/jfd/crypt.html 행동 양식 공개 정적 최종 문자열 crypt (문자열 소금, 문자열 원본) Clear-Text 비밀번호와 a "소금". 매개 변수 : 소금 - 소금을 나타내는 2 자 끈 사용된 암호화 엔진을 많이 반복합니다 방법. 새로운 암호화를 생성한다면 이것 값은 무작위 배정되어야합니다. 원본 - 암호화 할 비밀번호. 보고: 2 차 소금으로 구성된 줄이 뒤 따랐다 ~에 의해 암호화 된 암호. 공개 정적 최종 문자열 암호 (String Original) Clear-Text 비밀번호가 주어지면 비밀번호를 암호화합니다. 이 방법 'java.util.random'클래스를 사용하여 임의의 소금을 생성합니다. 매개 변수 : 원본 - 암호화 할 비밀번호. 보고: 2 차 소금으로 구성된 줄이 뒤 따랐다 ~에 의해 암호화 된 암호. 공개 정적 최종 부울 매치 (String EncryptedPassword, String EnteredPassword) EnteredPassword가 암호화 된 Password로 암호화되는지 확인하십시오. 매개 변수 : 암호화 된 Password- 암호화 된 파더 워드. 첫 번째 두 캐릭터는 소금으로 여겨집니다. 이 문자열은 Unix /etc /passwd 파일에서 발견 된 것과 동일합니다. EnteredPassword- 사용자가 입력 한 비밀번호 (또는 달리 획득). 보고: 비밀번호가 올바른 것으로 간주되어야하는 경우 true.