17.4.1 Driverインタフェース
- 〈この項の構成〉
(1) 概要
Driverインタフェースでは,主に次の機能が提供されます。
-
DB接続
-
指定したURLの妥当性チェック
-
DriverManager.getConnectionメソッドで指定する接続プロパティの情報取得
-
ドライババージョンの返却
(2) メソッド
Driverインタフェースのメソッド一覧を次の表に示します。なお,表に記載されていないメソッドはサポートしていません。サポートしていないメソッドを指定すると,SQLExceptionを投入します。
メソッド |
提供ドライバ |
機能 |
|
---|---|---|---|
JDBC2.0 |
JDBC4.0 |
||
○ |
○ |
ドライバが指定されたURLに接続できるかどうかを確認します。 |
|
○ |
○ |
指定されたURLにデータベース接続を試みます。 |
|
○ |
○ |
ドライバのメジャーバージョンを取得します。 |
|
○ |
○ |
ドライバのマイナーバージョンを取得します。 |
|
○ |
○ |
ドライバの有効なプロパティについての情報を取得します。 |
|
○ |
○ |
ドライバがJDBC CompliantTMであるかどうかを通知します。 |
(a) acceptsURL(String url)
- 【機能】
-
ドライバが指定されたURLに接続できるかどうかを確認します。
- 【形式】
public boolean acceptsURL(String url) throws SQLException
- 【引数】
-
- String url:
-
データベースのURL
- 【戻り値】
-
ドライバが指定されたURLを認識する場合はtrue,そうでない場合はfalseを返します。
- 【発生する例外】
-
なし。
(b) connect(String url, Properties info)
- 【機能】
-
指定されたURLにデータベース接続を試みます。
- 【形式】
public Connection connect(String url, Properties info) throws SQLException
- 【引数】
- 【戻り値】
-
URLへの接続を表すConnectionオブジェクト
- 【機能詳細】
-
URLで示すデータベースと接続します。
このメソッドは,DriverManager.getLoginTimeoutが返す値を,HiRDBサーバとの接続時に行う通信の最大待ち時間として使用します。
getLoginTimeoutが0を返す場合,クライアント環境定義PDCONNECTTIMEで指定した値が,最大待ち時間になります。
なお,待ち時間はDriverManager.setLoginTimeoutで指定できます。
- 【発生する例外】
-
次の場合,SQLExceptionを投入します。
-
データベースアクセスエラーが発生した場合
-
指定した接続情報が不正である場合
-
DriverManager.getLoginTimeoutの返却値が0〜300の範囲外となる場合
-
(c) getMajorVersion()
- 【機能】
-
ドライバのメジャーバージョンを取得します。
- 【形式】
public synchronized int getMajorVersion()
- 【引数】
-
なし。
- 【戻り値】
-
このドライバのメジャーバージョン番号
- 【発生する例外】
-
なし。
(d) getMinorVersion()
- 【機能】
-
ドライバのマイナーバージョンを取得します。
- 【形式】
public synchronized int getMinorVersion()
- 【引数】
-
なし。
- 【戻り値】
-
このドライバのマイナーバージョン番号
- 【発生する例外】
-
なし。
(e) getPropertyInfo(String url, Properties info)
- 【機能】
-
このドライバの有効なプロパティについての情報を取得します。
- 【形式】
public synchronized DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException
- 【引数】
-
- String url:
-
接続先のデータベースのURL
- Properties info:
-
接続引数としてのプロパティ名称,及び値のペアのリスト
- 【戻り値】
-
有効なプロパティを記述するDriverPropertyInfoオブジェクトの配列(プロパティが必要ない場合は,この配列は空になることもあります)
DriverPropertyInfoの各フィールドの設定値を次の表に示します。
表17‒10 DriverPropertyInfoの各フィールドの設定値 プロパティ名
DriverPropertyInfoフィールド
name
value
description
required
choices
user
プロパティ名と同じ
null
"UserID"
false
null
password
同上
""
"Password"
false
null
UAPNAME
同上
""
"UAPNAME"
false
null
JDBC_IF
同上
"OFF"
"JDBC Interface Trace"
false
{"ON","OFF"}
TRC_NO
同上
"500"
"Trace Entry Number"
false
null
ENCODELANG
同上
null
"Encode Lang"
false
null
HIRDB_CURSOR
同上
"FALSE"
"HiRDB Cursor across commit"
false
null
LONGVARBINARY_ACCESS
同上
"REAL"
"Longvarbinary locator access"
false
null
HiRDB_for_Java_SQL_IN_NUM
同上
"300"
"SQL In Number"
false
null
HiRDB_for_Java_SQL_OUT_NUM
同上
"300"
"SQL Out Number"
false
null
HiRDB_for_Java_SQLWARNING_LEVEL
同上
"SQLWARN"
"SQL Warning Level"
false
null
HiRDB_for_Java_ENV_VARIABLES
同上
null
"HiRDB Environment Variables"
false
null
HiRDB_for_Java_STATEMENT_COMMIT_BEHAVIOR
同上
"TRUE"
"HiRDB Statement across commit"
false
{"TRUE","FALSE"}
HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE
同上
0
"Longvarbinary locator access size"
false
null
HiRDB_for_Java_MAXBINARYSIZE
同上
null
"Longvarbinary maximum binary size"
false
null
HiRDB_for_Java_LONGVARBINARY_TRUNCERROR
同上
"TRUE"
"Longvarbinary truncate error"
false
{"TRUE","FALSE"}
HiRDB_for_Java_DBID
同上
null
"Port number of HiRDB server or Environment variable group of HiRDB"
false
null
HiRDB_for_Java_DBHOST
同上
null
"Host name with HiRDB"
false
null
HiRDB_for_Java_HiRDB_INI
同上
null
"HiRDB.ini file "
false
null
HiRDB_for_Java_BATCHEXCEPTION_BEHAVIOR
同上
"TRUE"
"BatchUpdateException UpdateCounts that conforms to JDBC standard"
false
{"TRUE","FALSE"}
SQLWARNING_IGNORE
同上
"FALSE"
"Warning generated by the Connection object is not maintained with the Connection object"
false
{"TRUE","FALSE"}
HiRDB_for_Java_STATEMENT_CLOSE_BEHAVIOR
同上
"FALSE"
"HiRDB Statement close behavior"
false
{"TRUE","FALSE"}
HiRDB_for_Java_UPDATECOUNT_BEHAVIOR
同上
"FALSE"
"Statement UpdateCounts that conforms to JDBC standard"
false
{"TRUE","FALSE"}
- 【機能詳細】
-
引数url,infoに指定された情報を解析し,データベースに接続するための情報を返します。
なお,acceptsURL(String url)がfalseとなる場合,このメソッドはnullを返します。
- 【発生する例外】
-
なし。
(3) パッケージ名称及びクラス名称
このインタフェースを実装するパッケージ名称とクラス名称を次に示します。
パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC
クラス名称:HiRDBDriver
(4) エスケープ句
SQL文中で{ }で囲まれた部分をエスケープ句と呼びます。エスケープ句は一つのキーワードと複数のパラメタで構成されます。キーワードの大文字と小文字は区別しません。
エスケープ句の一覧を次の表に示します。
エスケープ句の種別 |
キーワード |
---|---|
日付,時刻,時刻印 |
d,t,ts |
LIKEエスケープ文字 |
escape |
外部結合 |
oj |
プロシジャ呼び出し |
call |
スカラ関数 |
fn |
代入 |
set |
エスケープ句で指定できるスカラ関数については,「エスケープ句で指定できるスカラ関数」を参照してください。
- <エスケープ構文の解析>
-
エスケープ構文の解析を有効にするかどうかは,StatementクラスのsetEscapeProcessingメソッドで指定します。指定がない場合は,有効となります。エスケープ構文の解析が有効な場合,JDBCドライバはSQL文内にエスケープ句がないか解析します。SQL文内にエスケープ句があった場合は,HiRDBが実行可能なSQL文に変換します。