Package com.altibase.document.api
Interface AltibaseDatabase
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
AltibaseDatabaseImpl
Altibase 문서 데이터베이스 하나를 표현하는 핵심 인터페이스이다.
이 인터페이스는 컬렉션 생성, 조회, 삭제와 같은 컬렉션 관리 기능과
트랜잭션 제어 기능을 제공한다.
이 인터페이스는 AutoCloseable을 구현하므로, 사용 후 데이터베이스 연결이
올바르게 닫히도록 try-with-resources 구문과 함께 사용하는 것을 강력히 권장한다.
사용 예제
try (AltibaseDatabase db =
AltibaseSession.getDatabase("jdbc:Altibase://localhost:20300/mydb?user=sys&password=manager")) {
// 컬렉션 가져오기 또는 생성하기
AltibaseCollection books = db.getCollection("books");
// 컬렉션에 대한 작업 수행
books.insertOne(AltibaseDocument.parse("{\"title\": \"1984\"}"));
}
- Since:
- 1.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intJSON 타입을 나타내는 내부 상수 (Altibase JDBC 드라이버 기준) -
Method Summary
Modifier and TypeMethodDescriptionvoid현재 진행 중인 트랜잭션의 모든 변경사항을 취소하고 트랜잭션을 종료한다 (롤백).voidclose()데이터베이스 연결과 관련된 모든 리소스를 해제한다.createCollection(String aCollectionName) 기본 옵션으로 새로운 컬렉션을 생성한다.createCollection(String aCollectionName, AltibaseDocument aOptionDefJson) JSON 형식으로 정의된 옵션을 사용하여 새로운 컬렉션을 생성한다.createCollection(String aCollectionName, CollectionOptionsBuilder aOptionsBuilder) CollectionOptionsBuilder를 사용하여 구성된 옵션으로 새로운 컬렉션을 생성한다.voiddropCollection(String aName) 데이터베이스에서 지정한 이름의 컬렉션을 영구적으로 삭제한다.void현재 진행 중인 트랜잭션의 모든 변경사항을 영구적으로 저장하고 트랜잭션을 종료한다 (커밋).데이터베이스 연결의 문자셋 이름을 반환한다.getCollection(String aCollectionName) 지정한 이름의 기존 컬렉션을 가져온다.getCollectionCrossUser(String aOwnerUserId, String aCollectionName) 다른 사용자의 컬렉션을 가져온다 (크로스 유저 접근).내부적으로 관리하는 JDBCConnection객체를 반환한다.데이터베이스의 식별자 인용부호(Quote Character)를 반환한다.boolean수동으로 시작된 트랜잭션이 현재 활성 상태인지 여부를 확인한다.모든 사용자의 컬렉션 메타데이터를 반환한다 (ADMIN 전용).현재 사용자의 모든 컬렉션 메타데이터를 반환한다.listCollectionMetadataByUserId(String aUserId) 지정한 사용자의 모든 컬렉션 메타데이터를 반환한다 (ADMIN 전용).현재 데이터베이스에 존재하는 모든 컬렉션의 이름 목록을 반환한다.현재 데이터베이스에 존재하는 모든 컬렉션에 대한AltibaseCollection객체 목록을 반환한다.void수동 트랜잭션 제어를 시작한다.void주로 내부 관리용으로 사용되며,AltibaseCollection.close()가 호출될 때 해당 컬렉션을 데이터베이스 객체의 관리 목록에서 제거한다.
-
Field Details
-
JSON_TYPE
static final int JSON_TYPEJSON 타입을 나타내는 내부 상수 (Altibase JDBC 드라이버 기준)- See Also:
-
-
Method Details
-
createCollection
기본 옵션으로 새로운 컬렉션을 생성한다.- Parameters:
aCollectionName- 생성할 컬렉션의 이름- Returns:
- 생성된
AltibaseCollection객체 - Throws:
AltibaseCollectionException- 동일한 이름의 컬렉션이 이미 존재하거나 생성에 실패할 경우
-
createCollection
JSON 형식으로 정의된 옵션을 사용하여 새로운 컬렉션을 생성한다.옵션은
AltibaseDocument.parse()를 통해 JSON 문자열로부터 생성할 수 있다.- Parameters:
aCollectionName- 생성할 컬렉션의 이름aOptionDefJson- 컬렉션 생성 옵션을 정의한AltibaseDocument객체- Returns:
- 생성된
AltibaseCollection객체 - Throws:
AltibaseCollectionException- 동일한 이름의 컬렉션이 이미 존재하거나 생성에 실패할 경우
-
createCollection
AltibaseCollection createCollection(String aCollectionName, CollectionOptionsBuilder aOptionsBuilder) CollectionOptionsBuilder를 사용하여 구성된 옵션으로 새로운 컬렉션을 생성한다.이 방식은 타입-안전(type-safe)하고 가독성 높은 코드로 옵션을 설정할 때 유용하다.
- Parameters:
aCollectionName- 생성할 컬렉션의 이름aOptionsBuilder- 컬렉션 생성 옵션을 구성하는CollectionOptionsBuilder인스턴스- Returns:
- 생성된
AltibaseCollection객체 - Throws:
AltibaseCollectionException- 동일한 이름의 컬렉션이 이미 존재하거나 생성에 실패할 경우
-
getCollection
지정한 이름의 기존 컬렉션을 가져온다.- Parameters:
aCollectionName- 가져올 컬렉션의 이름- Returns:
- 조회된
AltibaseCollection객체. 컬렉션이 존재하지 않을 경우null을 반환한다. - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
close
void close()데이터베이스 연결과 관련된 모든 리소스를 해제한다.try-with-resources구문에 의해 자동으로 호출된다.- Specified by:
closein interfaceAutoCloseable
-
unregisterCollection
주로 내부 관리용으로 사용되며,AltibaseCollection.close()가 호출될 때 해당 컬렉션을 데이터베이스 객체의 관리 목록에서 제거한다.- Parameters:
aCol- 등록 해제할AltibaseCollection객체
-
startTransaction
void startTransaction()수동 트랜잭션 제어를 시작한다. 이 메서드 호출 후 수행되는 모든 작업은endTransaction()또는abortTransaction()이 호출될 때까지 하나의 트랜잭션으로 묶인다. -
abortTransaction
void abortTransaction()현재 진행 중인 트랜잭션의 모든 변경사항을 취소하고 트랜잭션을 종료한다 (롤백). -
endTransaction
void endTransaction()현재 진행 중인 트랜잭션의 모든 변경사항을 영구적으로 저장하고 트랜잭션을 종료한다 (커밋). -
isTransactionActive
boolean isTransactionActive()수동으로 시작된 트랜잭션이 현재 활성 상태인지 여부를 확인한다.- Returns:
- 트랜잭션이 활성 상태이면
true, 그렇지 않으면false
-
dropCollection
데이터베이스에서 지정한 이름의 컬렉션을 영구적으로 삭제한다.- Parameters:
aName- 삭제할 컬렉션의 이름- Throws:
AltibaseCollectionException- 컬렉션이 존재하지 않거나 삭제에 실패할 경우
-
getCharacterSetName
String getCharacterSetName()데이터베이스 연결의 문자셋 이름을 반환한다. 주로 내부적으로 문서 크기 계산 시 사용된다.- Returns:
- 문자셋 이름
-
getQuoteStr
String getQuoteStr()데이터베이스의 식별자 인용부호(Quote Character)를 반환한다. (예:"\"")- Returns:
- 인용부호 문자열
-
listCollectionNames
현재 데이터베이스에 존재하는 모든 컬렉션의 이름 목록을 반환한다.- Returns:
- 컬렉션 이름의
List - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
listCollections
List<AltibaseCollection> listCollections()현재 데이터베이스에 존재하는 모든 컬렉션에 대한AltibaseCollection객체 목록을 반환한다.- Returns:
AltibaseCollection객체의List- Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
listCollectionMetadata
List<CollectionMetaData> listCollectionMetadata()현재 사용자의 모든 컬렉션 메타데이터를 반환한다.이 메서드는 현재 사용자(userId)의 컬렉션 메타데이터만 조회한다. REST API에서 컬렉션 목록과 함께 메타데이터 정보를 제공하기 위해 사용된다.
- Returns:
- 컬렉션 메타데이터
List - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
listAllCollectionMetadataForAdmin
List<CollectionMetaData> listAllCollectionMetadataForAdmin()모든 사용자의 컬렉션 메타데이터를 반환한다 (ADMIN 전용).이 메서드는 userId 필터링 없이 전체 컬렉션의 메타데이터를 조회한다. REST API의 ADMIN 권한 사용자가 모든 컬렉션을 관리하기 위해 사용된다.
- Returns:
- 모든 컬렉션의 메타데이터
List - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
listCollectionMetadataByUserId
지정한 사용자의 모든 컬렉션 메타데이터를 반환한다 (ADMIN 전용).이 메서드는 Admin이 특정 사용자의 컬렉션 목록을 조회할 때 사용된다. 저장 프로시저를 통해 DB에서 직접 userId로 필터링하므로 성능이 우수하다.
- Parameters:
aUserId- 조회할 대상 사용자 ID- Returns:
- 컬렉션 메타데이터
List - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
getCollectionCrossUser
다른 사용자의 컬렉션을 가져온다 (크로스 유저 접근).하이브리드 ACL 시스템에서 권한이 부여된 경우, 다른 사용자의 컬렉션에 접근할 수 있다. 이 메서드는 REST API에서 ACL 체크 후 호출된다.
- Parameters:
aOwnerUserId- 컬렉션 소유자의 userIdaCollectionName- 가져올 컬렉션의 이름- Returns:
- 조회된
AltibaseCollection객체. 컬렉션이 존재하지 않을 경우null을 반환한다. - Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
getConnection
Connection getConnection()내부적으로 관리하는 JDBCConnection객체를 반환한다.- Returns:
- 현재 사용 중인 JDBC Connection 객체
-