Interface AltibaseClient


public interface AltibaseClient
Altibase Document API에 접근하기 위한 기본 진입점(Entry Point)이다.

이 인터페이스는 AltibaseDatabase 인스턴스를 생성하는 정적 팩토리 메서드(static factory methods)를 제공한다. 직접 구현하거나 인스턴스를 생성할 필요 없이, 정적 메서드를 바로 호출하여 사용한다.

사용 예제


 // AltibaseSession을 사용하여 AltibaseDatabase 인스턴스를 얻는 예제
 try (AltibaseDatabase database =
                  AltibaseSession.getDatabase("jdbc:Altibase://localhost:20300/mydb?user=sys&password=manager")) {
     // 데이터베이스 작업 수행
     AltibaseCollection collection = database.getCollection("myCollection");
     // ...
 }
 
Since:
1.0
See Also:
  • Method Details

    • getDatabase

      static AltibaseDatabase getDatabase(String aUrl)
      JDBC URL을 사용하여 AltibaseDatabase 인스턴스를 생성하고 반환한다.

      URL에 사용자 정보(user, password)가 포함되어 있지 않다면, getDatabase(String, Properties) 메서드 사용을 권장한다.

      Parameters:
      aUrl - 접속할 Altibase 데이터베이스의 JDBC URL이다. (예: "jdbc:Altibase://localhost:20300/mydb?user=sys&password=manager")
      Returns:
      새로운 AltibaseDatabase 인스턴스이다.
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 실패할 경우
    • getDatabase

      static AltibaseDatabase getDatabase(String aUrl, Properties aProps)
      JDBC URL과 접속 속성(Properties)을 사용하여 AltibaseDatabase 인스턴스를 생성하고 반환한다.
      Parameters:
      aUrl - 접속할 Altibase 데이터베이스의 JDBC URL이다. (예: "jdbc:Altibase://localhost:20300/mydb")
      aProps - 데이터베이스 접속 시 사용할 추가 속성이다. (예: user, password 등)
      Returns:
      새로운 AltibaseDatabase 인스턴스이다.
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 실패할 경우
    • getDatabase

      static AltibaseDatabase getDatabase(String aUrl, Properties aProps, String aUserId)
      JDBC URL, 접속 속성, 그리고 사용자 ID를 사용하여 AltibaseDatabase 인스턴스를 생성하고 반환한다.

      멀티테넌트 환경 지원: 이 메서드는 하나의 DB 계정으로 여러 사용자/애플리케이션의 데이터를 논리적으로 격리할 때 사용한다. 지정된 userId는 테이블명 프리픽스로 사용되어 각 사용자의 컬렉션이 독립된 네임스페이스를 갖게 된다.

      권한 요구사항: 이 기능을 사용하려면 SYS 또는 KADA_API_USER 계정으로 접속해야 한다. 일반 사용자 계정으로 접속 시 본인 계정명과 다른 userId를 지정하면 메타데이터 저장 프로시저(dbms_kada)에서 권한 오류가 발생한다.

      REST API와의 호환: REST API에서 생성한 컬렉션을 Java API에서 접근하려면 KADA_API_USER 계정으로 접속 후 REST API의 JWT client_id와 동일한 userId를 지정해야 한다.

      사용 예제

      
       // SYS 또는 KADA_API_USER 계정으로 접속 (멀티테넌트 권한 필요)
       Properties props = new Properties();
       props.put("user", "kada_api_user");
       props.put("password", "api_user_password");
      
       // 멀티테넌트: 각 애플리케이션마다 독립된 네임스페이스
       AltibaseDatabase mobileDb = AltibaseClient.getDatabase(url, props, "mobile_app_01");
       mobileDb.createCollection("orders");  // 실제 테이블명: mobile_app_01_orders
      
       AltibaseDatabase webDb = AltibaseClient.getDatabase(url, props, "web_app_02");
       webDb.createCollection("orders");     // 실제 테이블명: web_app_02_orders
      
       // REST API에서 생성한 컬렉션 접근 (동일한 client_id 사용)
       AltibaseDatabase restDb = AltibaseClient.getDatabase(url, props, "mobile_app_01");
       AltibaseCollection orders = restDb.getCollection("orders");  // REST API와 동일한 테이블
       
      Parameters:
      aUrl - 접속할 Altibase 데이터베이스의 JDBC URL이다. (예: "jdbc:Altibase://localhost:20300/mydb")
      aProps - 데이터베이스 접속 시 사용할 추가 속성이다. (예: user, password 등)
      aUserId - 멀티테넌트 사용자 ID. 테이블명 프리픽스로 사용된다. (예: "mobile_app_01")
      Returns:
      새로운 AltibaseDatabase 인스턴스이다.
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 실패할 경우
      Since:
      1.1
    • getDatabase

      static AltibaseDatabase getDatabase(Connection aConn)
      이미 생성된 JDBC Connection 객체를 사용하여 AltibaseDatabase 인스턴스를 생성하고 반환한다.

      이 메서드는 기존의 JDBC 코드나 커넥션 풀(Connection Pool)과 통합할 때 유용하다. 제공된 Connection의 생명주기(열고 닫는 등)는 호출하는 쪽에서 관리해야 한다.

      Parameters:
      aConn - 사용할 기존 JDBC Connection 객체이다. null이 아니어야 하며, 연결이 유효한 상태여야 한다.
      Returns:
      새로운 AltibaseDatabase 인스턴스이다.
      Throws:
      AltibaseConnectionException - 제공된 Connection이 유효하지 않거나 닫혀있을 경우