Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 | 



연결 설정

DriverManager는 JDBC 드라이버를 관리하기 위한 기본적인 인터페이스이며, 데이터베이스 드라이버를 선택하고 새로운 데이터베이스 연결을 생성하는 기능을 한다. CUBRID JDBC 드라이버가 등록되어 있다면 DriverManager.getConnection(db-url, user-id, password) 메소드를 호출하여 데이터베이스에 접속한다. getConnection 메소드는 Connection 객체를 반환한다. 그리고 그것은 질의 실행과 명령문 실행 그리고 트랜잭션의 커밋 또는 롤백에 사용된다. 연결 설정을 위한 db-url 인자의 구성은 다음과 같다.

jdbc:cubrid:<host>:<port>:<db-name>:[user-id]:[password]:[?<property> [& <property>]]

 

<host> ::=

hostname | ip_address

 

<property> ::=

althosts=<alternative_hosts> | rctime=<second> | connectTimeout=<second> | queryTimeout=<second> | charset=<character_set> | zeroDateTimeBehavior=<behavior_type> | logFile=<file_name> | logOnException=<bool_type> | logSlowQueries=<bool_type>&slowQueryThresholdMillis=<millisecond>

 

<alternative_hosts> ::=

<standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<behavior_type> ::= exception | round | convertToNull

<bool_type> ::= true | false

  • <host> : CUBRID 브로커가 동작하고 있는 서버의 IP 주소 또는 호스트 이름
  • <port> : CUBRID 브로커의 포트 번호(기본값: 33000)
  • <db-name> : 접속할 데이터베이스 이름
  • [user-id] : 데이터베이스에 접속할 사용자 ID이다. 기본적으로 데이터베이스에는 dbapublic 두 개의 사용자가 존재한다. 빈 문자열("")을 입력하면 public 사용자로 데이터베이스에 접속한다.
  • [password] : 데이터베이스에 접속할 사용자의 암호이다. 해당 사용자에 암호가 설정되어 있지 않으면, 빈 문자열("")을 입력한다.
  • althosts : HA 환경에서 장애 시 fail-over할 하나 이상의 standby 브로커의 호스트 IP와 접속 포트이다.
  • rctime : HA 환경에서 장애 복구 시 active 브로커로 연결을 시도하는 주기를 초 단위로 입력한다. 이에 관한 상세한 설명은 "관리자 안내서 > CUBRID HA > 환경 설정 > JDBC 설정" 및 아래 예제를 참고한다.
  • connectTimeout : 데이터베이스 접속에 대한 타임아웃 시간을 초 단위로 설정한다(기본값: 0). DriverManger.setLoginTimeout() 메소드로 설정할 수도 있으나, 연결 URL에 이 값을 설정하면 메소드로 설정한 값은 무시된다.
  • queryTimeout : 질의 수행에 대한 타임아웃 시간을 초 단위로 설정한다(기본값: 0, 무제한). 이 값은 DriverManger.setQueryTimeout() 메소드에 의해 변경될 수 있다.
  • charset : 접속하고자 하는 DB의 문자 세트(charset)이다.
  • zeroDateTimeBehavior : JDBC에서는 java.sql.Date 형 객체에 날짜와 시간 값이 모두 0인 값을 허용하지 않으므로 이 값을 출력해야 할 때 어떻게 처리할 것인지를 정하는 속성. 기본 동작은 exception이다. 설정값에 따른 동작은 다음과 같다.
    • exception : 기본 동작. SQLException 예외로 처리한다.
    • round : 반환할 타입의 최소값으로 변환한다.
    • convertToNull : NULL로 변환한다.
    날짜와 시간 값이 모두 0인 값에 대한 설명은 "CUBRID SQL 설명서 > 데이터 타입 > 날짜/시간 데이터 타입 > 정의와 특성"을 참고한다.
  • logFile : 디버깅용 로그 파일 이름(기본값: cubrid_jdbc.log)
  • logOnException : 디버깅용 예외 처리 로깅 여부(기본값: false)
  • logSlowQueries : 디버깅용 슬로우 쿼리 로깅 여부(기본값: false)
  • slowQueryThresholdMillis : 디버깅용 슬로우 쿼리 로깅 시 슬로우 쿼리 제한 시간(기본값: 60000). 단위는 밀리 초이다.
예제 1

--connection URL string when user name and password omitted

 

URL=jdbc:CUBRID:192.168.0.1:33000:db1:::

 

--connection URL string when zeroDateTimeBehavior property specified

URL=jdbc:CUBRID:127.0.0.1:31000:db1:::?zeroDateTimeBehavior=convertToNull

 

--connection URL string when charset property specified

 

URL=jdbc:CUBRID:192.168.0.1:33000:db1:::?charset=utf-8

 

--connection URL string when queryTimeout and charset property specified

 

URL=jdbc:CUBRID:127.0.0.1:31000:db1:::?queryTimeout=1&charset=utf-8

 

--connection URL string when a property(althosts) specified for HA

URL=jdbc:CUBRID:192.168.0.1:33000:db1:::?althosts=192.168.0.2:33000,192.168.0.3:33000

 

--connection URL string when properties(althosts,rctime, connectTimeout) specified for HA

URL=jdbc:CUBRID:192.168.0.1:33000:db1:::?althosts=192.168.0.2:33000,192.168.0.3:33000&rctime=600&connectTimeout=5

 

--connection URL string when properties(althosts,rctime, charset) specified for HA

URL=jdbc:CUBRID:192.168.0.1:33000:db1:::?althosts=192.168.0.2:33000,192.168.0.3:33000&rctime=600&charset=utf-8

예제 2

String url = "jdbc:cubrid:192.168.0.1:33000:demodb:::";

String userid = "";

String password = "";

 

try {

   Connection conn =

           DriverManager.getConnection(url,userid,password);

   // Do something with the Connection

 

   ...

 

   } catch (SQLException e) {

       System.out.println("SQLException:" + e.getMessage());

       System.out.println("SQLState: " + e.getSQLState());

   }

   ...

주의 사항
  • URL 문자열에서 콜론(:)과 물음표(?)는 구분자로 사용되므로, URL 문자열에 암호를 포함하는 경우 암호의 일부에 콜론이나 물음표를 사용할 수 없다. 암호에 콜론이나 물음표를 사용하려면 getConnection 함수에서 사용자 이름(user-id)과 암호(password)를 별도의 인자로 지정해야 한다.

참고 트랜잭션 롤백을 요청하는 rollback 메소드는 서버가 롤백 작업을 완료한 후 종료된다.