포스트그레스확장 가능합니다. 데이터베이스 시스템. 백엔드에 자신만의 기능을 추가할 수 있습니다. 그런 다음 쿼리에서 호출하거나 자신의 데이터를 추가할 수도 있습니다. 유형. 이것은 독특한 시설이므로포스트그레스, 우리는 Java에서 이를 지원합니다. 확장 세트API'입니다. 일부 표준 드라이버의 핵심 기능은 실제로 사용됩니다. Large Objects 등을 구현하기 위한 이러한 확장입니다.
일부 확장 기능에 액세스하려면 추가 기능을 사용해야 합니다 의 메소드org.토토 결과.Connection클래스. 이 경우, 반환 값을 대소문자로 구분해야 합니다.Driver.getConnection(). 예를 들면:
연결 db = Driver.getConnection(url, 사용자 이름, 비밀번호); // ... //나중에 빠른 경로 fp = ((org.토토 결과.Connection)db).getFastpathAPI();
공용 클래스 연결 확장 개체 연결 구현 java.lang.Object | +----org.토토 결과.Connection
다음은 다음에 접근하는 데 사용되는 추가 방법입니다.포스트그레SQL의 확장 기능입니다. 에 의해 정의된 메소드java.sql.Connection목록에 없습니다.
공용 Fastpath getFastpathAPI()에서 SQLException 발생
빠른 경로를 반환합니다.API현재 연결에 대해. 그것은 주로 대형 개체에서 사용됨API.
이것을 사용하는 가장 좋은 방법은 다음과 같습니다:
org.토토 결과.fastpath.* 가져오기; ... 빠른 경로 fp = ((org.토토 결과.Connection)myconn).getFastpathAPI();myconn은 다음에 대한 개방형 연결입니다.포스트그레SQL.
반환:다음에 대한 액세스를 허용하는 빠른 경로 개체 기능은포스트그레SQL백엔드.
던지는 것:빠른 경로에 의한 SQLException 발생 시 처음으로 초기화하는 중
공용 LargeObjectManager getLargeObjectAPI()가 SQLException을 발생시킵니다.이것은 대형 개체를 반환합니다.API현재 연결에 대해.
이것을 사용하는 가장 좋은 방법은 다음과 같습니다:
import org.postgresql.largeobject.*; ... LargeObjectManager lo = ((org.토토 결과.Connection)myconn).getLargeObjectAPI();myconn은 다음에 대한 개방형 연결입니다.포스트그레SQL.
반환:구현하는 LargeObject 객체API
던지기:LargeObject에 의한 SQLException 발생 시 처음으로 초기화하는 중
public void addDataType(문자열 유형, 문자열 이름)이를 통해 클라이언트 코드는 다음 중 하나에 대한 핸들러를 추가할 수 있습니다. 토토 결과의 더욱 독특한 데이터 유형. 일반적으로 데이터 유형은 드라이버가 알고 있는 값은 ResultSet.getObject()에 의해 반환됩니다. PG객체 인스턴스. 이 방법을 사용하면 다음과 같은 클래스를 작성할 수 있습니다. PGobject를 확장하고 드라이버에 유형 이름과 클래스 이름을 알려줍니다. 사용합니다. 이것의 단점은 이 메서드를 호출해야 한다는 것입니다. 연결될 때마다.
이것을 사용하는 가장 좋은 방법은 다음과 같습니다:
...
((org.토토 결과.Connection)myconn).addDataType("mytype","my.class.name");
...myconn은 다음에 대한 공개 연결입니다.토토 결과. 는
처리 클래스는 확장되어야 합니다.org.토토 결과.util.PGobject.
공용 클래스 Fastpath는 객체를 확장합니다. java.lang.Object | +----org.토토 결과.fastpath.Fastpath
빠른 경로은APIlibpq C 내에 존재함 인터페이스를 제공하며 클라이언트 시스템이 기능을 실행할 수 있도록 합니다. 데이터베이스 백엔드에서. 대부분의 클라이언트 코드는 그럴 필요가 없습니다. 이 방법을 사용하지만 Large ObjectAPI사용합니다.
사용하려면 다음을 가져와야 합니다.org.토토 결과.fastpath패키지, 다음을 사용하여 줄:
org.토토 결과.fastpath.* 가져오기;그런 다음 코드에서 다음을 얻어야 합니다.빠른 경로객체:
빠른 경로 fp = ((org.토토 결과.Connection)conn).getFastpathAPI();이것은 데이터베이스와 연관된 인스턴스를 반환합니다 명령을 실행하는 데 사용할 수 있는 연결입니다. 의 케이스연결에org.토토 결과.Connection다음과 같이 필수입니다.getFastpathAPI()는 확장 방법이지 확장 방법이 아닙니다. 의 일부JDBC. 일단 당신은빠른 경로인스턴스, 다음을 사용할 수 있습니다.빠른 경로()실행 방법 백엔드 기능.
또한 참조: FastpathFastpathArg, 대형객체
공용 객체 빠른 경로(int fnid,
부울 결과 유형,
FastpathArg args[])가 SQLException을 발생시킵니다.
토토 결과 백엔드에 함수 호출을 보냅니다.
매개변수:fnid - 함수 ID 결과 유형 - 결과가 정수이면 참이고, 그 외이면 거짓입니다. 결과 args - 전달할 FastpathArguments 빠른 경로
반환:데이터가 없으면 null, 데이터가 있으면 정수 정수 결과, 그렇지 않으면 byte[]
공용 객체 빠른 경로(문자열 이름,
부울 결과 유형,
FastpathArg args[])가 SQLException을 발생시킵니다.
다음을 통해 토토 결과 백엔드에 함수 호출 보내기 이름.
참고:프로시저 이름에 대한 매핑 기능을 수행하려면 ID가 존재해야 하며 일반적으로 addfunction()에 대한 이전 호출입니다. 이것은 함수 ID가 할 수 있거나 할 수 있으므로 호출하는 데 선호되는 방법 백엔드 버전 간 변경. 대한 이것이 어떻게 작동하는지에 대한 예는 다음을 참조하십시오. org.토토 결과.LargeObject
매개변수:name - 함수 이름 결과 유형 - 결과가 정수이면 참, 그 외이면 거짓 결과 args - 전달할 FastpathArguments 빠른 경로
반환:데이터가 없으면 null, 데이터가 있으면 정수 정수 결과, 그렇지 않으면 byte[]
또한 참조: 대형객체
public int getInteger(문자열 이름,
FastpathArg args[])가 SQLException을 발생시킵니다.
이 편의 방법은 반환이 다음과 같다고 가정합니다. 값은 정수입니다.
매개변수:name - 함수 이름 인수 - 함수 인수
반환:정수 결과
던지기:데이터베이스 액세스인 경우 SQLException 오류가 발생하거나 결과가 없습니다
공개 바이트[] getData(문자열 이름,
FastpathArg args[])가 SQLException을 발생시킵니다.
이 편의 방법은 반환이 다음과 같다고 가정합니다. 값은 바이너리 데이터입니다.
매개변수:name - 함수 이름 인수 - 함수 인수
반환:byte[] 결과를 포함하는 배열
던지기:데이터베이스 액세스인 경우 SQLException 오류가 발생하거나 결과가 없습니다
public void addFunction(문자열 이름,
int fnid)
이것은 조회 테이블에 기능을 추가합니다. 사용자 코드 사용해야 합니다.추가기능하드가 아닌 쿼리를 기반으로 하는 메소드 oid를 코딩합니다. 함수의 oid는 다음과 같습니다. 다른 서버에서도 정적인 상태를 유지함을 보장합니다. 같은 버전입니다.
public void addFunctions(ResultSet rs)가 SQLException을 발생시킵니다.
이것은 시간이 걸립니다결과세트두 개의 열을 포함합니다. 열 1에는 함수가 포함되어 있습니다. 이름, 열 2는 oid입니다. 전체를 읽습니다.결과세트, 값을 기능 테이블.
중요:기억하세요닫기()그결과세트이것을 호출한 후!
함수 이름에 대한 구현 참고사항 조회:토토 결과은 함수 ID를 저장합니다. 그리고 pg_proc 테이블의 해당 이름. 쿼리하는 대신 로컬에서 작업 속도를 높이려면 필요한 경우 해당 테이블의 각 함수, a해시테이블이 사용됩니다. 또한, 필요한 기능만 여기에 입력됩니다. 테이블을 통해 연결 시간을 최대한 빠르게 유지 가능합니다.
그org.토토 결과.LargeObject클래스 시작 시 쿼리를 수행하고 반환됨결과세트에추가함수()방법 여기. 이 작업이 완료되면 Large ObjectAPI다음을 나타냅니다. 이름으로 기능합니다.
수동으로 변환한다고 생각하지 마세요 oid가 작동합니다. 좋아요, 지금은 그럴 겁니다. 하지만 개발 중에 변경될 수 있습니다. V7.0에 대한 논의), 그래서 이것은 불필요한 두통을 예방하기 위해 시행되었습니다. 미래.
또한 참조: LargeObjectManager
public int getID(문자열 이름)에서 SQLException 발생
이것은 이름과 연관된 함수 ID를 반환합니다 addFunction() 또는 addFunctions()가 호출되지 않은 경우 이 이름에 대해서는 SQLException이 발생합니다.
공용 클래스 FastpathArg는 객체를 확장합니다. java.lang.Object | +----org.토토 결과.fastpath.FastpathArg
각 빠른 경로 호출에는 인수 배열이 필요합니다. 호출되는 함수에 따라 숫자와 유형이 달라집니다. 이 클래스는 이를 제공하는 데 필요한 메서드를 구현합니다. 능력.
이것을 사용하는 방법에 대한 예는 다음을 참조하세요.org.토토 결과.LargeObject패키지.
또한 참조: 빠른 경로, LargeObjectManager, 대형객체
공개 FastpathArg(int 값)
정수로 구성된 인수를 구성합니다. 값
매개변수:value - 설정할 int 값
공개 FastpathArg(바이트 바이트[])
다음 배열로 구성된 인수를 구성합니다. 바이트
매개변수:바이트 - 저장할 배열
공개 FastpathArg(바이트 buf[],
정수 꺼짐,
정수 길이)
다음의 일부로 구성된 인수를 구성합니다. 바이트 배열
매개변수:
소스 배열
배열 내 오프셋
포함할 데이터 길이
공개 FastpathArg(문자열 s)
다음으로 구성된 인수를 구성합니다. 문자열.
토토 결과다음 세트가 있습니다 기하학적 특징을 테이블에 저장할 수 있는 데이터 유형입니다. 여기에는 단일 점, 선 및 다각형이 포함됩니다. 우리는 지원합니다 org.postgresql.geometric 패키지를 사용하여 Java에서 이러한 유형을 사용할 수 있습니다. 여기에는 다음을 확장하는 클래스가 포함되어 있습니다. org.postgresql.util.PG객체 클래스. 해당 수업을 참조하세요. 자신만의 데이터 유형 핸들러를 구현하는 방법에 대해 자세히 알아보세요.
클래스 org.토토 결과.geometric.PGbox
java.lang.Object
|
+----org.토토 결과.util.PG객체
|
+----org.토토 결과.geometric.PGbox
공개 클래스 PGbox는 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 내의 상자 데이터 유형을 나타냅니다.포스트그레SQL.
변수
공개 PG포인트 포인트[]
이것이 상자의 두 모서리 점입니다.
생성자
공용 PGbox(더블 x1,
더블 y1,
더블 x2,
더블 y2)
매개변수:
x1 - 첫 번째 x 좌표
y1 - 첫 번째 y 좌표
x2 - 두 번째 x 좌표
y2 - 두 번째 y 좌표
공용 PGbox(PG포인트 p1,
PG포인트 p2)
매개변수:
p1 - 첫 번째 포인트
p2 - 두 번째 지점
공개 PGbox(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문의 상자 정의
오류: SQLException
정의가 유효하지 않은 경우
공개 PGbox()
필수 생성자
방법
public void setValue(String value)에서 SQLException이 발생합니다.
이 메소드는 이 객체의 값을 설정합니다. 그래야 한다
재정의되었지만 여전히 하위 클래스에서 호출됩니다.
매개변수:
value - 값의 문자열 표현
물체
오류: SQLException
이 유형의 값이 유효하지 않으면 발생합니다.
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGbox토토 결과재정의:
PGobject 클래스의 getValue
클래스 org.postgresql.geometric.PGcircle
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.geometric.PGcircle
공개 클래스 PGcircle은 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 다음을 나타냅니다.토토 결과25481_27192토토 결과재정의:
PGobject 클래스의 getValue
클래스 org.postgresql.geometric.PGline
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.geometric.PGline
공개 클래스 PGline은 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 두 점으로 구성된 선을 구현합니다. 현재 라인은
백엔드에는 아직 구현되지 않았지만 이 클래스는
준비는 끝났습니다.
변수
공개 PG포인트 포인트[]
이것이 두 가지 요점입니다.
생성자
공용 PGline(더블 x1,
더블 y1,
더블 x2,
더블 y2)
매개변수:
x1 - 첫 번째 점의 좌표
y1 - 첫 번째 점의 좌표
x2 - 두 번째 점의 좌표
y2 - 두 번째 점의 좌표
공개 PGline(PG포인트 p1,
PG포인트 p2)
매개변수:
p1 - 첫 번째 포인트
p2 - 두 번째 지점
공개 PGline(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문의 원 정의입니다.
오류: SQLException
변환 실패 시
공개 PGline()
운전자가 요구하는
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과의 라인 세그먼트 정의
구문
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGline토토 결과재정의:
PGobject 클래스의 getValue
클래스 org.postgresql.geometric.PGlseg
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.geometric.PGlseg
공개 클래스 PGlseg는 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 두 점으로 구성된 lseg(선분)를 구현합니다.
변수
공개 PG포인트 포인트[]
이것이 두 가지 요점입니다.
생성자
공개 PGlseg(더블 x1,
더블 y1,
더블 x2,
더블 y2)
매개변수:
x1 - 첫 번째 점의 좌표
y1 - 첫 번째 점의 좌표
x2 - 두 번째 점의 좌표
y2 - 두 번째 점의 좌표
공개 PGlseg(PG포인트 p1,
PG포인트 p2)
매개변수:
p1 - 첫 번째 포인트
p2 - 두 번째 지점
공개 PGlseg(String s)가 SQLException을 발생시킵니다.
매개변수:
s - 토토 결과 구문의 원 정의입니다.
오류: SQLException
변환 실패 시
공개 PGlseg()
운전자가 요구하는
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과의 라인 세그먼트 정의
구문
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGlseg포스트그레SQL재정의:
PGobject 클래스의 getValue
클래스 org.postgresql.geometric.PGpath
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.geometric.PGpath
공개 클래스 PGpath는 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 경로(다중 분할 선)를 구현합니다.
폐쇄)
변수
공개 부울 오픈
경로가 열려 있으면 True, 닫혀 있으면 False
공개 PG포인트 포인트[]
이 경로를 정의하는 점
생성자
공개 PGpath(PG포인트 포인트[],
불리언 오픈)
매개변수:
points - 경로를 정의하는 PGpoint
open - 경로가 열려 있으면 true, 닫혀 있으면 false
공개 PG경로()
운전자가 요구하는 것
공개 PGpath(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문의 원 정의입니다.
오류: SQLException
변환 실패 시
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문의 경로 정의
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
이는 예상되는 구문으로 다각형을 반환합니다.토토 결과재정의:
PGobject 클래스의 getValue
공개 부울 isOpen()
경로가 열려 있으면 true를 반환합니다.
공개 부울 isClosed()
경로가 닫혀 있으면 true를 반환합니다.
공개 무효 closePath()
경로를 닫힌 것으로 표시합니다.
공개 무효 openPath()
경로를 열린 것으로 표시합니다.
클래스 org.토토 결과.geometric.PGpoint
java.lang.Object
|
+----org.토토 결과.util.PG객체
|
+----org.토토 결과.geometric.PGpoint
공개 클래스 PGpoint는 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 double을 사용하는 것을 제외하고 java.awt.Point 버전을 구현합니다.
좌표를 표현하기 위해
의 포인트 데이터 유형에 매핑됩니다.포스트그레SQL.
변수
공개 더블엑스
점의 X 좌표
공개 더블 y
점의 Y 좌표
생성자
공공 PG포인트(더블엑스,
더블 y)
매개변수:
x - 좌표
y - 좌표
공개 PGpoint(문자열 값)에서 SQLException이 발생합니다.
이는 주로 다른 기하학적 유형에서 호출됩니다.
포인트는 정의에 포함되어 있습니다.
매개변수:
value - 토토 결과에서 이 지점을 정의합니다.
구문
공개 PG포인트()
운전자가 요구하는 것
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문에서 이 지점의 정의
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGpoint토토 결과재정의:
PGobject 클래스의 getValue
공개 무효 번역(int x,
정수 y)
포인트를 공급된 금액으로 환산합니다.
매개변수:
x - x축에 추가할 정수 양
y - y축에 추가할 정수 양
공개 무효 번역(더블 x,
더블 y)
포인트를 공급된 금액으로 환산합니다.
매개변수:
x - x축에 추가할 두 배의 양
y - y축에 추가할 두 배의 양
공공 무효 이동(int x,
정수 y)
제공된 좌표로 점을 이동합니다.
매개변수:
x - 정수 좌표
y - 정수 좌표
공공 무효 이동(이중 x,
더블 y)
제공된 좌표로 점을 이동합니다.
매개변수:
x - 이중 좌표
y - 이중 좌표
공개 무효 setLocation(int x,
정수 y)
제공된 좌표로 점을 이동합니다. 참조하다
이에 대한 설명을 위한 java.awt.Point
매개변수:
x - 정수 좌표
y - 정수 좌표
참조:
포인트
공공 무효 setLocation(포인트 p)
제공된 java.awt.Point 참조로 포인트를 이동합니다.
이에 대한 설명을 위한 java.awt.Point
매개변수:
p - 이동할 지점
참조:
포인트
클래스 org.postgresql.geometric.PGpolygon
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.geometric.PGpolygon
공개 클래스 PGpolygon은 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 토토 결과 내에서 다각형 데이터 유형을 구현합니다.
변수
공개 PG포인트 포인트[]
다각형을 정의하는 점
생성자
공개 PGpolygon(PG포인트 포인트[])
PGpoint 배열을 사용하여 다각형을 만듭니다.
매개변수:
points - 다각형을 정의하는 점
공개 PGpolygon(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문의 원 정의입니다.
오류: SQLException
변환 실패 시
공개 PG폴리곤()
운전자가 요구하는 것
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문에서 다각형 정의
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGpolygon토토 결과재정의:
PGobject 클래스의 getValue
대형 개체는 표준에서 지원됩니다.JDBC사양. 그러나 해당 인터페이스는 제한적이며API제공자: 토토 결과은 다음과 같이 객체 내용에 대한 무작위 액세스를 허용합니다. 로컬 파일인 경우.
org.postgresql.largeobject 패키지는 Java에 다음을 제공합니다. libpq C 인터페이스의 대형 객체API. 두 개의 클래스로 구성됩니다.LargeObjectManager는 생성을 다루고, 큰 개체 열기 및 삭제 및대형객체개인을 다루는 것 개체.
공개 클래스 LargeObject가 객체를 확장합니다. java.lang.Object | +----org.토토 결과.largeobject.LargeObject
이 클래스는 다음 작업에 대한 대형 객체 인터페이스를 구현합니다.토토 결과.
다음을 실행하는 데 필요한 기본 방법을 제공합니다. 인터페이스와 다음을 제공하는 메소드 쌍입력스트림그리고출력스트림이 개체에 대한 클래스입니다.
일반적으로 클라이언트 코드는 getAsciiStream을 사용합니다. getBinaryStream 또는 getUnicodeStream 메소드결과세트또는 setAsciiStream, setBinaryStream 또는 setUnicodeStream 메소드준비된 진술대형 액세스 객체.
그러나 때로는 대형 개체에 대한 낮은 수준의 접근이 필수이며, 이는에서 지원되지 않습니다.JDBC사양.
다음의 org.postgresql.largeobject.LargeObjectManager를 참조하세요. 대형 개체에 액세스하는 방법 또는 생성하는 방법 하나.
또한 참조: LargeObjectManager
파일의 시작 부분부터 탐색을 나타냅니다.
현재 위치에서 탐색을 나타냅니다.
파일 끝에서 탐색을 나타냅니다.
공개 int getOID()
이것의 OID를 반환합니다대형객체
public void close()에서 SQLException이 발생함
이 메소드는 개체를 닫습니다. 전화하시면 안됩니다 이것이 호출된 후 이 객체의 메서드입니다.
공개 바이트[] 읽기(int len)에서 SQLException 발생
객체에서 일부 데이터를 읽고 다음으로 반환합니다. 바이트[] 배열
공개 무효 읽기(바이트 buf[],
정수 꺼짐,
int len)이 SQLException을 발생시킵니다.
개체의 일부 데이터를 기존 개체로 읽어옵니다. 배열
매개변수:
대상 배열
배열 내 오프셋
읽을 바이트 수
public void write(byte buf[])에서 SQLException 발생
객체에 배열을 씁니다
공개 무효 쓰기(바이트 buf[],
정수 꺼짐,
int len)이 SQLException을 발생시킵니다.
배열의 일부 데이터를 객체에 씁니다
매개변수:
대상 배열
배열 내 오프셋
쓸 바이트 수
공개 클래스 LargeObjectManager가 객체를 확장합니다. java.lang.Object | +----org.postgresql.largeobject.LargeObjectManager
이 클래스는 다음에 대한 대형 객체 인터페이스를 구현합니다.토토 결과. 그것은 제공한다 클라이언트 코드가 생성, 열기 및 삭제를 허용하는 메서드 데이터베이스의 대형 개체. 객체를 열 때, 인스턴스org.토토 결과.largeobject.LargeObject이다 반환되고 그 메서드는 다음에 대한 액세스를 허용합니다. 개체.
이 클래스는 다음에 의해서만 생성될 수 있습니다 org.토토 결과.Connection. 이 클래스에 액세스하려면 다음을 사용하십시오. 다음 코드 세그먼트:
org.postgresql.largeobject.* 가져오기; 연결 연결; LargeObjectManager lobj; // ... 연결을 여는 코드 ... lobj = ((org.토토 결과.Connection)myconn).getLargeObjectAPI();
일반적으로 클라이언트 코드는 getAsciiStream을 사용합니다. getBinaryStream 또는 ResultSet의 getUnicodeStream 메소드, 또는 setAsciiStream, setBinaryStream 또는 setUnicodeStream 메소드 큰 개체에 액세스하기 위해 preparedstatement에서. 그러나, 때로는 대형 개체에 대한 낮은 수준의 액세스가 필요할 수도 있습니다. 에서는 지원되지 않습니다.JDBC사양.
방법은 org.토토 결과.largeobject.LargeObject를 참조하세요. 대형 개체의 내용을 조작합니다.
이 모드는 우리가 개체.
이 모드는 우리가 객체를 읽고 싶다는 것을 나타냅니다.
이 모드는 기본값입니다. 그것은 우리가 원한다는 것을 나타냅니다 대형 객체에 대한 읽기 및 쓰기 액세스 권한입니다.
공용 LargeObject open(int oid)에서 SQLException 발생
이것은 다음을 기반으로 기존의 대형 개체를 엽니다. OID. 이 방법은 READ 및 WRITE 액세스가 다음과 같다고 가정합니다. 필수(기본값).
공개 LargeObject open(int oid,
int 모드) SQLException이 발생함
이것은 다음을 기반으로 기존의 대형 개체를 엽니다. OID이며 액세스 모드를 설정할 수 있습니다.
public int create()에서 SQLException이 발생함
이것은 OID를 반환하는 대형 개체를 생성합니다. 그것 새 객체의 기본값은 READWRITE입니다. 속성.
public int create(int 모드)에서 SQLException 발생
이것은 OID를 반환하는 대형 개체를 생성하고 액세스 모드를 설정합니다.
public void delete(int oid)가 SQLException을 발생시킵니다.
이것은 큰 개체를 삭제합니다.
public void unlink(int oid)에서 SQLException 발생
이것은 큰 개체를 삭제합니다. 이는 다음과 동일합니다. 삭제 메소드이며 C로 제공됩니다.API사용"링크 해제".
토토 결과정상이 아닙니다SQL데이터베이스. 그것은 더 대부분의 다른 데이터베이스보다 확장 가능하며 개체를 지원합니다. 고유한 기능을 지향합니다.
이것의 결과 중 하나는 당신이 하나를 가질 수 있다는 것입니다 table은 다른 테이블의 행을 참조합니다. 예를 들어:
test= 테이블 사용자 생성(사용자 이름, 전체 이름 텍스트);
만들기
test= 테이블 서버 생성(서버 이름 이름, adminuser 사용자);
만들기
test= 사용자 값에 삽입('peter','Peter Mount');
삽입 2610132 1
test= 서버 값에 삽입('maidast',2610132::users);
삽입 2610133 1
테스트= 사용자 중에서 *를 선택합니다.
사용자 이름|전체 이름
------+---------------
피터 |피터 마운트
(1줄)
테스트= 서버에서 *를 선택합니다.
서버 이름|관리자
----------+---------
메이드 | 2610132
(1행)좋아, 위의 예는 테이블 이름을 다음과 같이 사용할 수 있음을 보여줍니다.
필드이며 행의 oid 값이 해당 필드에 저장됩니다.이것이 자바와 무슨 관련이 있나요?
Java에서는 객체를 스트림에 저장할 수 있습니다. 클래스는 java.io.Serialized 인터페이스를 구현합니다. 이 객체 직렬화(Object Serialization)라고 알려진 프로세스를 사용하여 복잡한 개체를 데이터베이스에 추가합니다.
자, 아래JDBC, 당신은 Large Object를 사용하여 저장합니다. 그러나 당신은 할 수 없습니다 해당 개체에 대해 쿼리를 수행합니다.
org.postgresql.util.Serialize 클래스가 하는 일은 다음과 같습니다 객체를 테이블로 저장하는 수단을 제공하고 테이블에서 해당 객체를 검색합니다. 대부분의 경우에는 그렇지 않습니다. 이 클래스에 직접 액세스해야 하지만 ReadyStatement.setObject() 및 ResultSet.getObject() 방법. 해당 메소드는 객체 클래스 이름을 확인합니다. 데이터베이스의 테이블에 대해. 일치하는 항목이 발견되면 개체가 직렬화된 개체라고 가정하고 검색합니다. 그 테이블에서요. 그렇게 함으로써, 객체가 다른 것을 포함하고 있다면 직렬화된 객체는 트리 아래로 반복됩니다.
소리가 복잡하다고요? 사실 제가 쓴 것보다 더 간단해요 - 설명하기 어려울 뿐이죠.
당신이 이 수업에 접근할 수 있는 유일한 시간은 create() 메소드. 이는 드라이버가 사용하지 않지만 문제가 됩니다. 다음을 기반으로 데이터베이스에 대한 하나 이상의 "테이블 만들기" 문 직렬화하려는 Java 객체 또는 클래스입니다.
아, 마지막으로 한 가지만요. 객체에 다음과 같은 줄이 포함되어 있는 경우:
공개 int oid;그런 다음 개체가 테이블에서 검색되면 설정됩니다. 테이블 내의 oid에. 그런 다음 객체가 수정되면 다시 직렬화되면 기존 항목이 업데이트됩니다.
oid 변수가 존재하지 않으면 객체가 있을 때 직렬화되면 항상 테이블에 삽입됩니다. 테이블의 기존 항목은 유지됩니다.
직렬화 전에 oid를 0으로 설정하면 다음이 발생합니다. 삽입할 개체입니다. 이를 통해 객체를 복제할 수 있습니다. 데이터베이스에 있습니다.
클래스 org.postgresql.util.Serialize
java.lang.Object
|
+----org.postgresql.util.Serialize
공개 클래스 직렬화는 객체를 확장합니다.
이 클래스는 토토 결과의 객체 지향 기능을 사용하여 Java를 저장합니다.
객체. 이는 Java 클래스 이름을 테이블에 매핑하여 수행됩니다.
데이터베이스. 이 새 테이블의 각 항목은 직렬화된 테이블을 나타냅니다.
이 클래스의 인스턴스입니다. 각 항목에는 OID(Object IDentifier)가 있으므로
이 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
오류 발생 시
public static void create(연결 콘,
객체 o) SQLException이 발생합니다.
이 방법은 드라이버에서 사용되지 않지만
직렬화 가능한 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
오류 발생 시
public static void create(연결 콘,
객체 o) SQLException이 발생합니다.
이 방법은 드라이버에서 사용되지 않지만
직렬화 가능한 Java 객체가 주어진 테이블. 그 전에 사용해야 해요
모든 객체를 직렬화합니다.
매개변수:
c - 데이터베이스 연결
o - 기본 테이블에 대한 개체
오류: SQLException
오류 발생 시
public static void create(연결 콘,
클래스 c) SQLException이 발생합니다.
이 방법은 드라이버에서 사용되지 않지만
직렬화 가능한 Java 객체가 주어진 테이블. 그 전에 사용해야 해요
모든 객체를 직렬화합니다.
매개변수:
c - 데이터베이스 연결
o - 테이블의 기반이 되는 클래스
오류: SQLException
오류 발생 시
공개 정적 문자열 to토토 결과(문자열 이름)에서 SQLException이 발생합니다.
이는 Java 클래스 이름을로 변환합니다.포스트그레SQL테이블, 작성자
. _와 함께
이 때문에 클래스 이름에는 이름에 _가 포함되지 않을 수 있습니다.
또 다른 제한 사항은 전체 클래스 이름(포함)입니다.
패키지)는 31자를 초과할 수 없습니다(한도).
토토 결과에 의해 강제됨).
매개변수:
이름 - 클래스 이름
반품:
토토 결과 테이블 이름
오류: SQLException
오류 발생 시
public static String toClassName(문자열 이름)에서 SQLException이 발생합니다.
이것은 a를 변환합니다.포스트그레SQL테이블을 Java 클래스 이름으로,
_를 .
매개변수:
name - 토토 결과 테이블 이름
반품:
수업명
오류: SQLException
오류 발생 시
유틸리티 클래스
org.postgresql.util 패키지에는 내부에서 사용되는 클래스가 포함되어 있습니다.
기본 드라이버 및 기타 확장.
클래스 org.postgresql.util.PGmoney
java.lang.Object
|
+----org.postgresql.util.PG객체
|
+----org.postgresql.util.PGmoney
공개 클래스 PGmoney는 PGobject를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이는 토토 결과 화폐 유형을 처리하는 클래스를 구현합니다.
변수
공개 이중 발
필드의 값
생성자
공개 PGmoney(이중 값)
매개변수:
값 - 필드
공개 PGmoney(문자열 값)에서 SQLException이 발생합니다.
이는 주로 다른 기하학적 유형에서 호출됩니다.
포인트는 정의 내에 포함되어 있습니다.
매개변수:
value - 토토 결과에서 이 지점을 정의합니다.
구문
공개 PGmoney()
운전자가 요구하는 것
방법
public void setValue(String s)에서 SQLException이 발생합니다.
매개변수:
s - 토토 결과 구문에서 이 지점의 정의
오류: SQLException
변환 실패 시
재정의:
PGobject 클래스의 setValue
공개 부울은 같음(객체 obj)
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
PGobject 클래스와 동일
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
PGobject 클래스의 복제
공개 문자열 getValue()
반품:
예상되는 구문의 PGpoint토토 결과재정의:
PGobject 클래스의 getValue
클래스 org.토토 결과.util.PGobject
java.lang.Object
|
+----org.postgresql.util.PG객체
공개 클래스 PGobject는 객체를 확장하여 직렬화 가능을 구현합니다.
복제 가능
이 클래스는 알려지지 않은 데이터 유형을 설명하는 데 사용됩니다.JDBC표준.
org.토토 결과.Connection에 대한 호출은 이를 확장하는 클래스를 허용합니다.
명명된 유형과 연관되는 클래스입니다. 이 방법은
org.postgresql.geometric 패키지가 작동합니다.
ResultSet.getObject()는 다음과 같은 모든 유형에 대해 이 클래스를 반환합니다.
자체 핸들러가 있으면 인식되지 않습니다. 이 때문에 어떤포스트그레SQL데이터 유형이 지원됩니다.
생성자
공개 PG객체()
이는 org.토토 결과.Connection.getObject()에 의해 호출되어
객체를 생성합니다.
방법
public final void setType(문자열 유형)
이 메소드는 이 객체의 유형을 설정합니다.
하위 클래스에 의해 확장되어서는 안 됩니다. 따라서 최종입니다.
매개변수:
type - 객체의 유형을 설명하는 문자열
public void setValue(String value)에서 SQLException이 발생합니다.
이 메소드는 이 객체의 값을 설정합니다. 반드시
재정의됨.
매개변수:
value - 값의 문자열 표현
물체
오류: SQLException
이 유형의 값이 유효하지 않으면 발생합니다.
공개 최종 문자열 getType()
이는 객체의 수명 동안 변경될 수 없으므로
최종.
반품:
이 객체의 유형 이름
공개 문자열 getValue()
객체의 값을 반환하려면 이를 재정의해야 합니다.
에서 요구하는 형식으로포스트그레SQL.
반품:
이 객체의 가치
공개 부울은 같음(객체 obj)
객체 비교를 허용하려면 이를 재정의해야 합니다.
매개변수:
obj - 비교할 개체
반품:
두 상자가 동일하면 true
재정의:
Object 클래스와 같음
공개 객체 복제()
객체를 복제하려면 이를 재정의해야 합니다.
재정의:
Object 클래스의 클론
공개 문자열 toString()
이는 여기에 정의되어 있으므로 사용자 코드가 이를 재정의할 필요가 없습니다.
반품:
이 객체의 값(예상되는 구문)토토 결과재정의:
Object 클래스의 toString
클래스 org.postgresql.util.PGtokenizer
java.lang.Object
|
+----org.postgresql.util.PGtokenizer
공개 클래스 PGtokenizer는 객체를 확장합니다.
이 클래스는의 텍스트 출력을 토큰화하는 데 사용됩니다.포스트그레SQL.
이 작업을 수행하려면 StringTokenizer를 사용할 수도 있었지만 다음이 필요했습니다.
'(' ')' '[' ']' '<' 및 '' 중첩을 처리하기 위해 사용됩니다.
기하학적 데이터 유형.
주로 기하학 클래스에서 사용되지만 구문 분석에 유용합니다.
사용자 정의 데이터 유형의 모든 출력은 다음에서 출력됩니다.포스트그레SQL.
참조:
PGbox, PGcircle, PGlseg, PGpath, PGpoint, PGpolygon
생성자
공개 PGtokenizer(문자열 문자열,
문자 구분)
토크나이저를 생성합니다.
매개변수:
문자열 - 토큰 포함
delim - 토큰을 분할하는 단일 문자
방법
공개 int 토큰화(문자열 문자열,
문자 구분)
그러면 이 토크나이저가 새 문자열 및/또는
구분 기호.
매개변수:
문자열 - 토큰 포함
delim - 토큰을 분할하는 단일 문자
공개 int getSize()
반품:
사용 가능한 토큰 수
공개 문자열 getToken(int n)
매개변수:
n - 토큰 번호( 0 ... getSize()-1 )
반품:
토큰 가치
공개 PGtokenizer tokenizeToken(int n,
문자 구분)
그러면 토큰 중 하나를 기반으로 하는 새로운 토크나이저가 반환됩니다. 는
기하학적 데이터 유형은 이를 사용하여 중첩된 토큰을 처리합니다(보통
PG포인트).
매개변수:
n - 토큰 번호( 0 ... getSize()-1 )
delim - 사용할 구분 기호
반품:
토큰을 기반으로 하는 PGtokenizer의 새로운 인스턴스
공개 정적 문자열 제거(문자열 s,
문자열 l,
문자열 t)
문자열에서 리드/후행 문자열을 제거합니다.
매개변수:
s - 소스 문자열
l - 제거할 선행 문자열
t - 제거할 후행 문자열
반품:
리드/후행 문자열이 없는 문자열
공개 무효 제거(문자열 l,
문자열 t)
이렇게 하면 모든 토큰에서 리드/후행 문자열이 제거됩니다.
매개변수:
l - 제거할 선행 문자열
t - 제거할 후행 문자열
공개 정적 문자열 제거Para(문자열 s)
문자열의 시작과 끝에서 ( 및 )를 제거합니다.
매개변수:
s - 제거할 문자열
반품:
( 또는 )가 없는 문자열
공공 무효 제거Para()
모든 토큰의 시작과 끝에서 ( 및 )를 제거합니다.
반품:
( 또는 )가 없는 문자열
공개 정적 문자열 제거 상자(문자열 s)
문자열의 시작과 끝에서 [ 및 ]를 제거합니다.
매개변수:
s - 제거할 문자열
반품:
[ 또는 ]가 없는 문자열
공공 무효 제거 상자()
모든 토큰의 시작과 끝에서 [ 및 ]를 제거합니다.
반품:
[ 또는 ]가 없는 문자열
공개 정적 문자열 제거 각도(문자열 s)
문자열의 시작과 끝에서 < 및 를 제거합니다.
매개변수:
s - 제거할 문자열
반품:
< 또는 가 없는 문자열
공공 무효 제거 각도()
모든 토큰의 시작과 끝에서 < 및 를 제거합니다.
반품:
< 또는 가 없는 문자열
클래스 org.postgresql.util.Serialize
이는 앞서 객체 직렬화 항목에 문서화되어 있습니다.
클래스 org.postgresql.util.UnixCrypt
java.lang.Object
|
+----org.postgresql.util.UnixCrypt
공개 클래스 UnixCrypt는 객체를 확장합니다.
이 클래스는 다음과 같은 경우 비밀번호를 암호화하는 기능을 제공합니다.
네트워크 스트림을 통해 전송됨
Unix와 비밀번호를 암호화하고 비교하는 정적 방법이 포함되어 있습니다.
암호화된 비밀번호.
원본 소스는 John Dumas의 Java Crypt 페이지를 참조하세요.
http://www.zeh.com/local/jfd/crypt.html
방법
공개 정적 최종 문자열 암호화(문자열 소금,
문자열 원본)
일반 텍스트 비밀번호와
"소금".
매개변수:
salt - 소금을 나타내는 두 자리 문자열
사용됨
다양한 방식으로 암호화 엔진을 반복합니다.
방법. 새로운 암호화를 생성하는 경우
값은 무작위로 지정되어야 합니다.
원본 - 암호화할 비밀번호입니다.
반품:
2자리 소금으로 구성된 문자열이 이어집니다.
에 의해
암호화된 비밀번호.
공개 정적 최종 문자열 암호화(문자열 원본)
일반 텍스트 비밀번호가 주어지면 비밀번호를 암호화합니다. 이 방법
'java.util.Random' 클래스를 사용하여 무작위 솔트를 생성합니다.
매개변수:
원본 - 암호화할 비밀번호입니다.
반품:
2자리 소금으로 구성된 문자열이 이어집니다.
에 의해
암호화된 비밀번호.
공개 정적 최종 부울 일치(문자열 암호화된 비밀번호,
문자열 입력 비밀번호)
입력된 비밀번호가 암호화된 비밀번호로 암호화되는지 확인하세요.
매개변수:
암호화된 비밀번호 - 암호화된 비밀번호입니다. 첫 번째
두 문자는 소금으로 간주됩니다. 이 문자열은
Unix /etc/passwd 파일에 있는 것과 동일합니다.
EnterPassword - 사용자가 입력한 비밀번호입니다.
(또는 다른 방식으로 취득).
반품:
비밀번호가 올바른 것으로 간주되어야 하는 경우 true입니다.