JDBC Driver Guide

PSQL v12
JDBC Driver Guide
Developing Applications Using the PSQL JDBC Driver
免責事項
商標
Actian Corporation は、 本 ソ フ ト ウ ェ アお よ び ド キ ュ メ ン ト の使用を、 利用者ま たはそ
の会社に対 し て 「現状の ま ま」 で、かつ同梱の使用許諾契約書に記載の契約条件に よ っ
てのみ許諾す る も のです。 Actian Corporation は、 いかな る 場合に も 本 ソ フ ト ウ ェ アお
よ び本マニ ュ アルに記載 さ れた内容に関す る その他の一切の保証を、 明示的に も 黙示
的に も 行い ません。 Actian Corporation は、 市場性、 権利、 特定の目的に対す る 適合性、
あ る いは一連の取引業務や職業的な使用に関す る 問題な ど に対 し 、 一切の保証を行わ
ない こ と を明示する と と も に、利用者お よ びその会社が こ れに同意 し た も の と し ます。
Btrieve、 Client/Server in a Box お よ び Pervasive は Actian Corporation の登録商標です。
Built on Pervasive Software、 DataExchange、 MicroKernel Database Engine、 MicroKernel Database
Architecture、 Pervasive.SQL、 Pervasive PSQL、 Solution Network、 Ultralight、 ZDBA は Actian
Corporation の商標です。
Apple、 Macintosh、 Mac、 お よ び OS X は、 Apple Inc の登録商標です。
Microsoft、 MS-DOS、 Windows、 Windows 95、 Windows 98、 Windows NT、 Windows Me、 Windows
2000、 Windows 2003、 Windows 2008、 Windows 7、 Windows 8、 Windows 10、 Windows Server 2003、
Windows Server 2008、 Windows Server 2012、 Windows XP、 Win32、 Win32s、 お よ び Visual Basic
は、 Microsoft Corporation の登録商標です。
NetWare お よ び Novell は Novell, Inc の登録商標です。 NetWare Loadable Module、 NLM、 Novell
DOS、 Transaction Tracking System お よ び TTS は Novell, Inc の商標です。
Oracle、 Java、 お よ び Oracle ま たは Java を含むすべての商標や ロ ゴは、 Oracle Corporation の商標
ま たは登録商標です。
すべての会社名お よ び製品名は各社の商標ま たは登録商標です。
© Copyright 2016 Actian Corporation.All rights reserved. こ のマニ ュ アルの全文、 一部に関わ り な く
複製、 複写、 配布をす る こ と は、 前 も っ て発行者の書面に よ る 同意がない限 り 禁止 し ます。
本製品には、 Powerdog Industries に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。
© Copyright 1994 Powerdog Industries.All rights reserved. 本製品には、 KeyWorks Software に よ り 開
発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。
© Copyright 2002 KeyWorks Software.All rights reserved. 本製品には、DUNDAS SOFTWARE に よ り
開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。
© Copyright 1997-2000 DUNDAS SOFTWARE LTD. All rights reserved. 本製品には、Apache Software
Foundation Foundation(http://www.apache.org/)に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。
本製品では フ リ ー ソ フ ト ウ ェ ア の unixODBC Driver Manager を 使用 し て い ま す。 こ れは Peter
Harvey ([email protected]) に よ っ て作成 さ れ、 Nick Gorham ([email protected]) に よ
り 変 更お よ び拡 張 さ れ た も の に Actian Corporation が 一部 修 正 を 加 え た も の で す。 Actian
Corporation は、 unixODBC Driver Manager プ ロ ジ ェ ク ト の LGPL 使用許諾契約書に従っ て、 こ の
プ ロ ジ ェ ク ト の現在の保守管理者にその コ ー ド 変更を提供 し ます。 unixODBC Driver Manager の
Web ページは www.unixodbc.org にあ り ます。 こ のプ ロ ジ ェ ク ト に関す る 詳細については、 現在
の保守管理者であ る Nick Gorham ([email protected]) にお問い合せ く だ さ い。
GNU Lesser General Public License (LGPL) は本製品の配布 メ デ ィ アに含まれてい ます。 LGPL は
www.fsf.org/licensing/licenses/lgpl.html で も 見 る こ と がで き ます。
JDBC Driver Guide
2016 年 7 月
目次
こ のマニ ュ アルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
こ のマニ ュ アルの読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
表記上の規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
1
PSQL JDBC ド ラ イバーの概要
. . . . . . . . . . . . . . . . . . . . . . . . . .
1
PSQL の JDBC 開発サポー ト の概要
PSQL JDBC サポー ト
2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
JDBC の条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
JDBC の機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
PSQLJDBC ド ラ イ バーの制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
サポー ト さ れない API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ド ラ イ バーの制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
PSQL JDBC 2 ド ラ イバーを使用 し た プ ログ ラ ミ ング . . . . . . . . . . . . . . .
5
PSQL の JDBC 2 機能の概要
環境設定の方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CLASSPATH の設定 . . . . . . . . . . . . .
シ ス テ ム PATH の設定 . . . . . . . . . . . .
JDBC ド ラ イ バーの Java 環境への読み込み
デー タ ソ ース の指定 . . . . . . . . . . . . .
JDBC アプ レ ッ ト の開発 . . . . . . . . . . .
.
.
.
.
.
6
6
6
7
7
JDBC プ ロ グ ラ ミ ン グ作業 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
接続文字列の概要 . . . . . .
接続文字列の要素 . . . . . .
JDBC 接続文字列の例 . . .
文字エン コ ー ド を使用す る
文字エン コ ー ド の注意点 . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
.
.
.
.
.
. 8
. 8
. 9
. 10
. 10
Web ベース アプ リ ケーシ ョ ンの開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
アプ レ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
サーブ レ ッ ト と Java Server Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
JDBC 2.0 Standard Extension API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
DataSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
接続お よ び並行制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ス ク ロ ール可能な結果セ ッ ト
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
JDBC プ ロ グ ラ ミ ン グ例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3
JDBC API の リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
JDBC API の リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
JDBC サンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
iii
目次
iv
こ のマ ニュ ア ルについて
こ のマニ ュ アルは、 SQL ス テー ト メ ン ト (JDBC) 実行用の Java API を使用す る PSQL アプ リ ケーシ ョ ン を開発す
る ための手引書です。
v
こ のマニ ュ アルの読者
こ のマニ ュ アルは、 SQL ス テー ト メ ン ト (JDBC) 実行用の Java API を使用す る PSQL アプ リ ケーシ ョ ン を開発
す る ユーザーを対象 と し てい ます。
vi
表記上の規則
特段の記述がない限り、 コマンド構文、 コード、 およびコード例では、 以下の表記が使用されます。
大文字小文字の
区別
通常、 コ マ ン ド と 予約語は、 大文字で表記 さ れます。 本書で
別途記述がない限 り 、 こ れ ら の項目は大文字、 小文字、 あ る
いはそ の両方 を 使 っ て入力で き ま す。 た と えば、 MYPROG、
myprog、 ま たは MYprog と 入力す る こ と がで き ます。
太字
太字で表示 さ れ る 単語には次の よ う な も のが あ り ま す。 メ
ニ ュ ー名、 ダ イ ア ロ グ ボ ッ ク ス名、 コ マ ン ド 、 オプシ ョ ン、
ボ タ ン、 ス テー ト メ ン ト な ど。
固定幅フ ォ ン ト
固定幅フ ォ ン ト は、 コ マ ン ド 構文な ど、 ユーザーが入力す る
テ キ ス ト に使われます。
[ ]
省略可能な情報には、 [log_name] の よ う に、 角か っ こ が使
用 さ れます。 角かっ こ で囲ま れていない情報は必ず指定す る
必要があ り ます。
|
縦棒は、 [file name | @file name] の よ う に、 入力す る 情報の選
択肢を表 し ます。
< >
<> は、 /D=<5|6|7> の よ う に、 必須項目に対す る 選択肢
を表 し ます。
変数
file name の よ う に斜体で表 さ れてい る 語は、 適切な値に置 き
換え る 必要のあ る 変数です。
...
[parameter...] の よ う に、 情報の後に省略記号が続 く 場合は、
その情報を繰 り 返 し 使用で き ます。
::=
記号 ::= は、 あ る 項目が別の項目用語で定義 さ れてい る こ と
を意味 し ます。 た と えば、 a::=b は、 項目 a が b で定義 さ れて
い る こ と を意味 し ます。
vii
viii
PSQL JDBC ド ラ イ バーの概要
1
PSQL の JDBC 開発サポー ト の概要
こ の章では、 PSQL JDBC イ ン タ ーフ ェ イ ス について説明 し ます。 以下の項目が含まれます。
„
「PSQL JDBC サポー ト 」
„
「PSQLJDBC ド ラ イ バーの制限」
1
PSQL JDBC ド ラ イバーの概要
PSQL JDBC サポー ト
JDBC は、Java プ ロ グ ラ マが Java を使用 し てデー タ ベース アプ リ ケーシ ョ ンや イ ン タ ーネ ッ ト アプ リ ケーシ ョ ン
を開発す る ために使用で き る 標準 API です。 こ れは、 Java プ ロ グ ラ ミ ン グ言語で SQL ベース のデー タ ベース ア
プ リ ケ ー シ ョ ン を 開発す る た め の イ ン タ ー フ ェ イ ス で構成 さ れ て い ま す。 JDBC イ ン タ ー フ ェ イ ス は、 Java
Developer Kit の一部 と し て含まれてい ます。
JDBC は Java の ODBC に相当す る も のであ り 、 ODBC デー タ ベース と リ レーシ ョ ナル デー タ ベース の大 き な影
響を受け ます。
JDBC API の詳細については、 Oracle の Web サ イ ト を参照 し て く だ さ い。
JDBC の条件
PSQL JDBC ド ラ イ バーは PSQL と 共に動作 し ます。 サーバー、 Vx Server、 ま たは ワ ー ク グループ エン ジ ン を使
用す る こ と がで き ます。
JDBC の機能
以下は、 PSQL JDBC ド ラ イ バーの機能についての概略です。
„
100% Java 対応
„
JDBC 2 対応、 タ イ プ 4 ド ラ イ バー (一部 JDBC 3 お よ び JDBC 4 をサポー ト )
„
ス レ ッ ド セーフ オペレーシ ョ ン をサポー ト し ます。
„
READ_COMMITTED、SERIALIZABLE な ど の PSQL エン ジ ンがサポー ト す る ト ラ ンザ ク シ ョ ン分離レベルを
サポー ト し ます。
„
ネ ッ ト ワ ー ク ア ク セ ス を減 ら すために結果セ ッ ト のキ ャ ッ シ ュ 登録を行い ます。
„
longvarbinary デー タ 型 (2 GB ま で) でバ イ ナ リ デー タ をサポー ト し ます。
„
longvarchar お よ び nlongvarchar デー タ 型 (2 GB ま で) で long char 型デー タ をサポー ト し ます。
„
パ ラ メ ー タ ーを持つス ト ア ド プ ロ シージ ャ をサポー ト し ます。
„
セキ ュ リ テ ィ を提供す る ために接続文字列を暗号化 し ます。
„
接続文字列パ ラ メ ー タ ーを使用 し て、指定 さ れた コ ー ド ページでデー タ ベース か ら 読み取る 際の コ ー ド ペー
ジの フ ィ ル タ ー リ ン グ をサポー ト し ます。
„
結 果 セ ッ ト の カ ー ソ ル CONCUR_UPDATABLE、 TYPE_SCROLL_INSENSITIVE、 お よ び
TYPE_SCROLL_SENSITIVE をサポー ト し ます。
„
DataSource イ ン タ ーフ ェ イ ス をサポー ト し ます。 JNDI に PSQL デー タ ベース を登録 し 、 PSQL 固有の ド ラ イ
バー機能か ら アプ リ ケーシ ョ ン を保護 し ます。
„
ParameterMetaData イ ン タ ーフ ェ イ ス をサポー ト し ます。
2
PSQLJDBC ド ラ イバーの制限
PSQLJDBC ド ラ イバーの制限
サポー ト さ れない API
JDBC ド ラ イ バーは次の JDBC イ ン タ ーフ ェ イ ス をサポー ト し ません。
„
Array
„
Blob
„
Clob
„
NClob
„
Ref
„
RowId
„
SQLXML
„
Struct
„
SQLData
„
SQLInput
„
SQLOutput
„
URL
こ れ ら がサポー ト さ れないのは、 PSQL エン ジ ンがその基盤にあ る SQL 3 デー タ 型を現在サポー ト し ていないた
めです。
ド ラ イバーの制限
„
"out" パ ラ メ ー タ ーで long デー タ 型を使用で き ません。
„
実際の最小フ ェ ッ チサ イ ズは 2 行です。
„
結合で更新可能な結果セ ッ ト を持つ こ と はで き ません。
„
"group by" で更新可能な結果セ ッ ト を持つ こ と はで き ません。
„
JDBC ド ラ イ バーは、 デー タ を UnicodeBig ま たは UnicodeLittle 形式で保存 し ません。
„
サポー ト さ れ る 保持機能は HOLD_CURSORS_OVER_COMMIT のみです。
„
プール さ れた ス テー ト メ ン ト はサポー ト さ れてい ません。
„
名前付 き パ ラ メ ー タ ーはサポー ト さ れてい ません。
3
PSQL JDBC ド ラ イバーの概要
4
PSQL JDBC 2 ド ラ イ バーを 使用し
たプ ロ グラ ミ ン グ
2
PSQL の JDBC 2 機能の概要
こ の章では、 以下の項目について説明 し ます。
„
「環境設定の方法」
„
「JDBC プ ロ グ ラ ミ ン グ作業」
„
「Web ベース アプ リ ケーシ ョ ンの開発」
„
「JDBC 2.0 Standard Extension API」
„
「接続お よ び並行制御」
„
「ス ク ロ ール可能な結果セ ッ ト 」
„
「JDBC プ ロ グ ラ ミ ン グ例」
5
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
環境設定の方法
こ のセ ク シ ョ ンでは、 JDBC イ ン タ ーフ ェ イ ス を使用する 場合の適切な設定について説明 し ます。
„
「CLASSPATH の設定」
„
「シ ス テ ム PATH の設定」
„
「JDBC ド ラ イ バーの Java 環境への読み込み」
„
「デー タ ソ ース の指定」
„
「JDBC アプ レ ッ ト の開発」
CLASSPATH の設定
Java アプ リ ケーシ ョ ンお よ びアプ レ ッ ト が PSQL JDBC ド ラ イ バーを認識で き る よ う に、 CLASSPATH 環境変数
に pvjdbc2.jar、 pvjdbc2x.jar、 お よ び jpscs.jar フ ァ イ ルを含め る よ う に設定 し て く だ さ い。 Windows プ ラ ッ ト フ ォー
ムでは、 デフ ォ ル ト で こ れ ら の フ ァ イ ルは Program Files フ ォ ルダー下の イ ン ス ト ールデ ィ レ ク ト リ \bin に存在
し ます。 Linux お よ び OS X では、 こ の フ ァ イ ルはデフ ォ ル ト で /usr/local/psql/bin/lib に イ ン ス ト ール さ れます。
Windows の場合
set CLASSPATH=%CLASSPATH%;<pvjdbc2.jar デ ィ レ ク ト のパ ス >/pvjdbc2.jar
set CLASSPATH=%CLASSPATH%;<pvjdbc2x.jar デ ィ レ ク ト のパス >/pvjdbc2x.jar
set CLASSPATH=%CLASSPATH%;<jpscs.jar デ ィ レ ク ト のパ ス >
/jpscs.jar
Linux および OS X の場合
export CLASSPATH=$CLASSPATH:<pvjdbc2.jar デ ィ レ ク ト リ のパス >/pvjdbc2.jar
export CLASSPATH=$CLASSPATH:<pvjdbc2x.jar デ ィ レ ク ト リ のパ ス >/pvjdbc2x.jar
export CLASSPATH=$CLASSPATH:<jpscs.jar デ ィ レ ク ト リ のパ ス >/jpscs.jar
シ ス テム PATH の設定
共有 メ モ リ ま たは IPX を使用 し てデー タ ベース エン ジ ンに接続する 場合、 JDBC ド ラ イ バーは pvjdbc2.dll を見つ
け る 必要があ り ます。 PATH 環境変数に DLL の場所を含めて く だ さ い。
set PATH=%PATH%;<pvjdbc2.dll デ ィ レ ク ト リ のパ ス >
ソ ケ ッ ト を使用 し てデー タ ベース に接続す る 場合、 通常は、 DLL は必要 と さ れません。
JDBC ド ラ イバーの Java 環境への読み込み
CLASSPATH 変数を設定す る と 、 Java アプ リ ケーシ ョ ンか ら PSQL JDBC ド ラ イ バーを参照す る こ と がで き ます。
こ れは、 次の java.lang.Class ク ラ ス を使用 し て行い ます。
Class.forName("com.pervasive.jdbc.v2.Driver");
IPv6 環境
IPv6 のみの環境で PSQL JDBC ド ラ イ バーを使用す る 場合は、 Java JRE 1.7 も 使用する こ と をお勧め し ます。 IPv6
のみの環境でアプ リ ケーシ ョ ンが Java JRE 1.6 よ り 前のバージ ョ ン を使用 し た場合、 ラ イ セ ン ス数に関す る 問題
や ク ラ イ ア ン ト 追跡の問題が生 じ る 可能性があ り ます。
ま た、 次の よ う な条件が組み合わ さ っ た場合に も 、 ラ イ セ ン ス数に関す る 問題が生 じ る こ と があ り ます。
1
1 台のマシ ンが PSQL JDBC ド ラ イ バーを使用 し て複数のアプ リ ケーシ ョ ン を実行 し てお り 、それ ら のアプ リ
ケーシ ョ ンが IPv4 ア ド レ ス と IPv6 ア ド レ ス を併用 し てデー タ ベース エン ジ ンに接続 し てい る 。
2
マシ ンの SYSTEM PATH に pvjdbc2.dll の場所が含まれていない。 「シ ス テ ム PATH の設定」 も 参照 し て く だ
さ い。
6
環境設定の方法
デー タ ソ ースの指定
Java 環境に PervasiveDriver ク ラ ス を読み込んだ後、 PSQL デー タ ベー ス に接続す る ために URL 形式の文字列を
java.sql.DriverManager ク ラ ス に渡す必要があ り ます。 JDBC ド ラ イ バーの URL の構文は次の と お り です。
jdbc:pervasive://< マシ ン名 >:< ポー ト 番号 >/< デー タ ソ ース >
< マシ ン名 >
PSQL デー タ ベース サーバーを実行す る マシ ンのホ ス ト 名ま たは IP ア ド レ ス。
< ポー ト 番号 >
PSQL デー タ ベース サーバーが受信を行 う ポー ト 。 こ のポー ト のデフ ォ ル ト 値は 1583 です。
< デー タ ソ ース >
アプ リ ケーシ ョ ンが使用す る 予定の PSQL デー タ ベース サーバー上の ODBC DSN の名前。
た と えば、 PSQL エン ジ ンが DBSERV と い う マシ ン上にあ っ て、 DEMODATA デー タ ベース に接続 し たい場合の
URL は次の よ う にな り ます (サーバーがデフ ォ ル ト のポー ト を使用す る よ う に設定 さ れてい る も の と し ます)。
jdbc:pervasive://DBSERV/DEMODATA
し たがっ て、 DriverManager ク ラ ス を使用 し てデー タ ベース に接続する には、 次の構文を使用 し ます。
Connection conn = DriverManager.getConnection("jdbc:pervasive://DBSERV:1583/
DEMODATA", loginString, passwordString);
"loginString" はユーザーの ロ グ イ ン名を表す文字列で、 "passwordString" はユーザーのパ ス ワ ー ド を表す文字列で
す。
メ モ JDBC アプ レ ッ ト お よ びアプ リ ケーシ ョ ンがデー タ にア ク セ スす る ためには、指定 し た ホ ス ト マシ ン で
PSQL エン ジ ンが実行 さ れてい る 必要があ り ます。
JDBC ア プ レ ッ ト の開発
JDBC を使用 し て Web ベース アプ リ ケーシ ョ ン を開発す る には、 アプ レ ッ ト ク ラ ス を含む コ ー ド ベース デ ィ レ
ク ト リ に JDBC jar フ ァ イ ルを置いてお く 必要があ り ます。
た と えば、 MyFirstJDBCapplet と 呼ぶアプ リ ケーシ ョ ン を開発す る 場合は、 MyFirstJDBCapplet ク ラ ス を含むデ ィ
レ ク ト リ に pvjdbc2.jar フ ァ イ ルを置 く 必要があ り ます。 た と えば、 C:\inetpub\wwwroot\myjdbc\ と な り ます。
こ れに よ り 、 ク ラ イ ア ン ト Web ブ ラ ウ ザーはネ ッ ト ワー ク か ら JDBC ド ラ イ バーを ダ ウ ン ロ ー ド し 、 デー タ ベー
ス に接続で き ます。
ま た、 <APPLET> タ グ内に archive パ ラ メ ー タ ーを指定す る 必要があ り ます。 た と えば、 次の よ う にな り ます。
<applet CODE="MyFirstJDBCapplet.class"
ARCHIVE="pvjdbc2.jar" WIDTH=641 HEIGHT=554>
メ モ : アプ レ ッ ト のホ ス ト と な る Web サーバーで PSQL エン ジ ンが実行 さ れてい る 必要があ り ます。
7
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
JDBC プ ログ ラ ミ ン グ作業
こ こ では、 JDBC プ ロ グ ラ ミ ン グの重要な コ ン セプ ト に焦点を当て ます。
接続文字列の概要
JDBC ド ラ イ バーは、 デー タ ベース の接続に URL を必要 と し ます。 JDBC ド ラ イ バー用の URL 構文は以下の と お
り です。
jdbc:pervasive://machinename:port number/datasource[;encoding=;encrypt=;
encryption=]
machinename は、 PSQL サーバーを実行す る マシ ンのホ ス ト 名ま たは IP ア ド レ ス です。
port number は、 PSQL サーバーが受信を行 う ためのポー ト です。 こ のポー ト のデフ ォ ル ト 値は 1583 です。
datasource は、アプ リ ケーシ ョ ンが使用する 予定の PSQL サーバー上の ODBC エン ジ ン デー タ ソ ース の名前
です。
encoding= は、 文字エ ン コ ー ド です。 こ れは指定 し た コ ー ド ページ を介 し て読み込んだデー タ に フ ィ ル タ ー
をかけ る こ と がで き ます。 こ れに よ り デー タ が正 し く 書式設定お よ び ソ ー ト さ れます。 値 "auto" は、 接続時
にデー タ ベース の コ ー ド ページ を決定 し 、 エン コ ー ド を その文字エン コ ー ド に設定 し ます。 ま た、 値 "auto"
に よ り 、 SQL ク エ リ 内の NCHAR リ テ ラ ルが保持 さ れます。 "auto" でない場合は、 SQL ク エ リ はデー タ ベー
ス の コ ー ド ページに変換 さ れます。
encrypt= は、 JDBC ド ラ イ バーが暗号化ネ ッ ト ワ ー ク 通信 (ワ イ ヤ暗号化 と も 呼ばれます) を使用す る 必要が
あ る か ど う か を決定 し ます。
encryption= は、 JDBC ド ラ イ バーが許可す る 暗号化の最低レベルを指定 し ます。
メ モ JDBC アプ リ ケーシ ョ ン を実行す る ためには、 PSQL v12 エン ジ ンは指定 し た ホ ス ト で実行 さ れてい る
必要があ り ます。
接続文字列の要素
JDBC を使用 し て PSQL デー タ ベース に接続する 方法を次に示 し ます。
ド ラ イバー ク ラ スパス
com.pervasive.jdbc.v2
ド ラ イバーを読み込むス テー ト メ ン ト
Class.forName("com.pervasive.jdbc.v2.Driver");
URL
jdbc:pervasive://server:port/DSN[;encoding=;encrypt=;encryption=]
ま たは
jdbc:pervasive://server:port/DSN[?pvtranslate=&encrypt=&encryption=]
8
JDBC プ ロ グ ラ ミ ン グ作業
表 1 接続文字列の要素
引数
説明
server
ID ま たは URL を使用 し たサーバー名。
port
リ レーシ ョ ナル エン ジ ンのデフ ォ ル ト のポー ト は 1583 です。 ポー ト が指定 さ れない場合、 こ のデフ ォ ル
ト が使用 さ れます。
DSN
通常の ODBC メ ソ ッ ド を使用 し てサーバーで設定す る DSN の名前。
encoding
「文字エ ン コ ー ド を使用す る 」 を参照 し て く だ さ い。
encrypt
JDBC ド ラ イ バーが暗号化ネ ッ ト ワ ー ク 通信 ( ワ イ ヤ暗号化 と も 呼ばれます) を使用す る 必要があ る か ど
う かを決定 し ます。 『Advanced Operations Guide』 の 「 ワ イ ヤ暗号化」 を参照 し て く だ さ い。
値 : always (常時)、 never ( し ない)
こ のオプシ ョ ン を指定 し なかっ た場合、 ド ラ イ バーにはサーバーの設定が反映 さ れます。 こ れは、 " 必要
な場合 " と 同等です。
値 "always" を指定 し た場合、 JDBC ド ラ イ バーは暗号化を使用 し ます。 ただ し 、 サーバーが ワ イ ヤ暗号化
を許可 し ていない場合はエ ラ ーを返 し ます。 値 "never" を指定 し た場合、 JDBC ド ラ イ バーは暗号化を使
用 し ません。 サーバーが ワ イ ヤ暗号化を要求 し た場合はエ ラ ーを返 し ます。
JDBC ド ラ イ バーで ワ イ ヤ暗号化を使用す る には、 別の JAR フ ァ イ ルが classpath に必要 と な り ます。 こ
の JAR フ ァ イ ル jpscs.jar はデフ ォ ル ト で イ ン ス ト ール さ れ、 Java Cryptography Extensions (JCE) を使用 し
ます。
encryption
JDBC ド ラ イ バーが許可す る 暗号化の最低レベルを決定 し ます。
値 : low (低)、 medium (中)、 high (高)
デフ ォ ル ト : medium (中)
こ れ ら の値はそれぞれ 40 ビ ッ ト 、 56 ビ ッ ト 、 お よ び 128 ビ ッ ト 暗号化に対応 し てい ます。
次の例では、 JDBC ド ラ イ バーは UTF-8 エン コ ー ド を使用 し 、 常に暗号化を要求 し 、 最低で も " 低 " レベ
ルの暗号化を必要 と す る こ と を指定 し てい ます。 そ う でない場合はエ ラ ー コ ー ド を返 し ます。
jdbc:pervasive://host/demodata?encoding=UTF-8&encrypt= always&encryption=low
JDBC 接続文字列の例
JDBC ド ラ イ バーを使用 し て PSQL デー タ ベース に接続する 方法を次に示 し ます。
// PSQL JDBC ド ラ イ バーを読み込みます。
Class.forName("com.pervasive.jdbc.v2.Driver")
// PSQL JDBC の URL 構文
// jdbc:pervasive://< ホ ス ト 名ま たは IP ア ド レ ス > :
//
< ポー ト 番号 (デフ ォ ル ト 1583) >/<ODBC エン ジ ン DSN>
String myURL = "jdbc:pervasive://127.0.0.1:1583/demodata";
try
{
// m_Connection = DriverManager.getConnection(myURL,username, password);
}
catch(SQLException e)
{
e.printStackTrace();
// その他の例外処理
}
9
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
文字エ ン コ ー ド を使用する
Java は文字列に ワ イ ド 文字を使用 し ます。 デー タ ベース のエン コ ー ド が ワ イ ド 文字でない (た と えば、 UCS-2 で
あ る ) 場合は、 デー タ ベース エン ジ ンに よ っ て文字デー タ を正 し く 変換す る ために、 ド ラ イ バーはデー タ ベース
の コ ー ド ページ を知っ てい る 必要が あ り ま す。 デー タ ベー ス の文字デー タ エ ン コ ー ド は、 ド ラ イ バー マネー
ジ ャ ーに渡す接続文字列の中で "encoding" 属性を使用 し て指定 し ます。
encoding 属性
encoding 属性は、 文字デー タ の変換に使用する 特定の コ ー ド ページ を指定 し ます。 encoding 属性を "auto" に設定
す る こ と で、 こ れを自動化で き ます。 こ れは、 デー タ ベース で使用 さ れてい る コ ー ド ページ を自動的に使用す る
よ う 、 ド ラ イ バーに指示 し ます。 特定の コ ー ド ページ を指定す る こ と も で き ます。 encoding 属性をが指定 さ れな
い場合は、 ク ラ イ ア ン ト マシ ンに用い ら れてい る デフ ォ ル ト のオペレーテ ィ ン グ シ ス テ ムの コ ー ド ページが使
用 さ れます。 こ れは ク ラ イ ア ン ト と サーバーが同 じ オペレーテ ィ ン グ シ ス テ ムのエン コ ー ド を使用 し てい る こ と
が前提です。
ま た、 encoding 属性を "auto" に設定す る と 、 SQL ク エ リ テ キ ス ト が、 デー タ ベース コ ー ド ページのエン コ ー ド
ではな く UTF-8 エン コ ー ド を使用 し て送信 さ れ る よ う にな り ます。 こ れに よ り 、 ク エ リ テ キ ス ト 内の NCHAR 文
字列 リ テ ラ ルが保持 さ れます。
文字エ ン コ ー ド の使用例
public static void main(String[] args)
{
// latin 2 エン コー ド を指定
String url = "jdbc:pervasive://MYSERVR:1583/SWEDISH_DB;encoding=cp850";
try{
Class.forName("com.pervasive.jdbc.v2.Driver");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from SwedishTable");
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
文字エ ン コ ー ド の注意点
PSQL JDBC ド ラ イ バーは、 コ ー ド ページの Java ネ イ テ ィ ブ サポー ト を使用 し ます。 サポー ト さ れ る コ ー ド ペー
ジの一覧は Oracle Corporation の Web サ イ ト か ら 入手で き ます。
10
Web ベース ア プ リ ケーシ ョ ンの開発
Web ベース ア プ リ ケーシ ョ ンの開発
こ こ では、 PSQL JDBC ド ラ イ バーを使用 し て Web ベース のアプ リ ケーシ ョ ン を作成す る 方法を説明 し ます。
アプレ ッ ト
JDBC を使用 し て Web ベース アプ リ ケーシ ョ ン を開発す る には、 アプ レ ッ ト ク ラ ス を含む コ ー ド ベース デ ィ レ
ク ト リ に JDBC jar フ ァ イ ルを置いてお く 必要があ り ます。
た と えば、 MyFirstJDBCapplet と い う アプ リ ケーシ ョ ン を開発す る 場合は、 MyFirstJDBCapplet ク ラ ス を含むデ ィ
レ ク ト リ に pvjdbc2.jar フ ァ イ ル ま た は PSQL jdbc パ ッ ケ ー ジ を 置 く 必要 が あ り ま す。 た と え ば、
C:\inetpub\wwwroot\myjdbc\ と 指定で き ま す。 こ れに よ り 、 ク ラ イ ア ン ト Web ブ ラ ウ ザーはネ ッ ト ワ ー ク か ら
JDBC ド ラ イ バーを ダ ウ ン ロ ー ド し 、 デー タ ベース に接続で き ます。
ま た、 JAR フ ァ イ ルを使用す る 場合、 <APPLET> タ グ内にアーカ イ ブ パ ラ メ ー タ ーを設定す る 必要があ り ます。
た と えば、 次の よ う にな り ます。
<applet CODE="MyFirstJDBCapplet.class" ARCHIVE="pvjdbc2.jar" WIDTH=641 HEIGHT=554>
メ モ PSQL エン ジ ンは、 アプ レ ッ ト のホ ス ト と な る Web サーバー上で運用 し なければな り ません。
サーブ レ ッ ト と Java Server Page
サーブ レ ッ ト と JSP を使用 し て、 PSQL JDBC ド ラ イ バーを用い る Web ベース のアプ リ ケーシ ョ ン を作成す る こ
と がで き ます。
次に示すのは、 PSQL に含まれ る サンプル デー タ ベース の DEMODATA のテーブルの 1 つを表示す る Java Server
Page の例です。
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%
Class.forName("com.pervasive.jdbc.v2.Driver");
Connection con = DriverManager.getConnection("jdbc:pervasive://localhost:1583/
DEMODATA");
PreparedStatement stmt = con.prepareStatement("SELECT * FROM Course ORDER BY Name");
ResultSet rs = stmt.executeQuery();
%>
<html>
<head>
<title>PSQL JSP Sample</title>
</head>
<body>
<h1>PSQL JSP Sample</h1>
<h2>Course table in DEMODATA database</h2>
<p>
こ の例は、 PSQL デー タ ベース にあ る DEMODATA デー タ ベース の Course テーブルを開 き 、
そのテーブルの内容を表示 し ます
</p>
<table border=1 cellpadding=5>
<tr>
<th>Name</th>
<th>Description</th>
11
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
<th>Credit Hours</th>
<th>Department Name</th>
</tr>
<% while(rs.next()) { %>
<tr>
<td><%= rs.getString("Name") %></td>
<td><%= rs.getString("Description") %></td>
<td><%= rs.getString("Credit_Hours") %></td>
<td><%= rs.getString("Dept_Name") %></td>
</tr>
<% } %>
</table>
</body>
</html>
サーブ レ ッ ト と JSP に関する情報
サーブ レ ッ ト と JSP の詳細に関 し ては、 Oracle の Web サ イ ト を参照 し て く だ さ い。
12
JDBC 2.0 Standard Extension API
JDBC 2.0 Standard Extension API
接続文字列はベン ダー固有であ る ため、 Java は DataSource イ ン タ ーフ ェ イ ス仕様を作成 し ま し た。 こ れは、 Java
レ ジ ス ト リ と し て機能す る JNDI を利用 し ま す。 DataSource イ ン タ ーフ ェ イ ス に よ り 、 JDBC 開発者は名前付 き
デー タ ベース を作成す る こ と がで き ます。 開発者は、 JNDI にデー タ ベース名 と ベン ダー固有の ド ラ イ バー情報を
登録 し ます。 そ う す る と 、 JDBC アプ リ ケーシ ョ ンはデー タ ベース を ま っ た く 知 る 必要がな く 、 「ピ ュ ア な JDBC」
と な り ます。
PSQL JDBC ド ラ イ バーは JDBC 2.0 Standard Extension API をサポー ト し てい ます。 現在、 PSQL JDBC ド ラ イ バー
は次の イ ン タ ーフ ェ イ ス をサポー ト し てい ます。
„
javax.sql.ConnectionEvent
„
javax.sql.ConnectionEventListener
„
javax.sql.ConnectionPoolDataSource
„
javax.sql.DataSource
„
javax.sql.PooledConnection
メ モ こ れ ら の イ ン タ ーフ ェ イ ス は、 コ ア JDBC API を 100% ピ ュ ア な Java と し て維持する ため、pvjdbc2x.jar
に別にパ ッ ケージ さ れてい ます。
現時点では、 PSQL は RowSet イ ン タ ーフ ェ イ ス の実装を提供 し てい ませんが、 PSQL JDBC ド ラ イ バーは Oracle
の RowSet イ ン タ ーフ ェ イ ス の実装で検証済みです。
DataSource
Java はアプ リ ケーシ ョ ン開発者が ド ラ イ バーに依存 し ないアプ リ ケーシ ョ ン を作成す る 方法を提供 し てい ます。
DataSource イ ン タ ーフ ェ イ ス と JNDI を使用す る こ と に よ り 、 アプ リ ケーシ ョ ンは標準の方法でデー タ にア ク セ
ス で き 、 接続文字列の よ う な ド ラ イ バー固有の要素を な く す こ と がで き ます。 DataSource イ ン タ ーフ ェ イ ス を使
用す る には、 デー タ ベース を JNDI サービ ス プ ロ バ イ ダーに登録す る 必要があ り ます。 そ う す る と 、 アプ リ ケー
シ ョ ンはデー タ ベース に名前でア ク セ スす る こ と がで き ます。
次に DataSource イ ン タ ーフ ェ イ ス の使用例を挙げます。
// こ の コ ー ド は、 DataSource を登録す る ために、
// 管理者が実行す る 必要があ り ます。
// こ のサンプルは、 Oracle の参照 JNDI 実装を使用 し ます。
public void registerDataSources()
{
// こ の例では JNDI フ ァ イ ルシ ス テ ム
// オブジ ェ ク ト を レ ジ ス ト リ と し て使用 し ます。
Context ctx;
jndiDir = "c:\\jndi";
try
{
Hashtable env = new Hashtable (5);
env.put (Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, jndiDir);
ctx = new InitialContext(env);
}
catch (Exception e)
{
13
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
System.out.println(e.toString());
}
// demodata を通常のデー タ ソ ース と し て登録
com.pervasive.jdbc.v2.DataSource ds = new com.pervasive.jdbc.v2.DataSource();
String dsName = "";
try
{
// ユーザー名、 パス ワー ド 、 ド ラ イ バーの種類、 お よ びネ ッ ト ワー ク プ ロ ト コ ルを設定
ds.setUser("administrator");
ds.setPassword("admin");
ds.setPortNumber("1583");
ds.setDatabaseName("DEMODATA");
ds.setServerName("127.0.0.1");
ds.setDataSourceName("DEMODATA_DATA_SOURCE");
ds.setEncoding("cp850");
dsName = "jdbc/demodata";
// バ イ ン ド
try
{
ctx.bind(dsName,ds);
System.out.println(" バ ウ ン ド デー タ ソ ース [" + dsName + "]");
}
catch (NameAlreadyBoundException ne)
{
System.out.println(" デー タ ソ ース [" + dsName + "] は既にバ イ ン ド さ れてい ます ");
}
catch (Throwable e)
{
System.out.println("JNDI バ イ ン ド エ ラ ー :");
throw new Exception(e.toString());
}
}
}
// こ の DataSource を アプ リ ケーシ ョ ンで使用す る には、 次の コ ー ド を実行す る こ と が必要
public DataSource lookupDataSource(String ln) throws SQLException
{
Object ods = null;
Context ctx;
try
{
Hashtable env = new Hashtable (5);
env.put (Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
// JNDI デ ィ レ ク ト リ を作成 し 、 その名前を返す
// ただ し そのデ ィ レ ク ト リ が ま だ存在 し ていない場合のみ
String jndiDir = "c:\\jndi";
env.put(Context.PROVIDER_URL, jndiDir);
ctx = new InitialContext(env);
}
catch (Exception e)
14
JDBC 2.0 Standard Extension API
{
System.out.println(e.toString());
}
try
{
ods = ctx.lookup(ln);
if (ods != null)
System.out.println(" デー タ ソ ース [" + ln + "]"+" が見つか り ま し た ");
else
System.out.println(" デー タ ソ ース [" + ln + "]"+" が見つか り ません ");
}
catch (Exception e)
{
throw new SQLException(e.toString());
}
return (DataSource)ods;
}
// ConnectionPoolDataSource も 同様に扱われ る こ と に注意
15
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
接続および並行制御
単一の PSQL JDBC 接続は、 簡単に複数ス レ ッ ド をサービ スす る こ と がで き ます。 ただ し 、 接続が ス レ ッ ド セー
フ の と き 、 その接続に よ っ て作成 さ れたオブジ ェ ク ト は ス レ ッ ド セーフ にはな り ません。 た と えば、 ユーザーは
4 つの ス レ ッ ド を作成で き ます。 こ れ ら の ス レ ッ ド は、 それぞれの Statement オブジ ェ ク ト を与え ら れます (す
べて同 じ Connection オブジ ェ ク ト に よ っ て作成 さ れ る )。4 つの ス レ ッ ド はすべて同一接続を使用 し 、同時にデー
タ を送っ た り リ ク エ ス ト し た り す る こ と がで き ます。 こ れは、 4 つの Statement オブジ ェ ク ト が同一 Connection
オブジ ェ ク ト を参照 し 、 読み込み と 書 き 込みが こ のオブジ ェ ク ト 上で同期す る こ と に よ り 、 動作 し ます。 ただ し 、
こ のア ク セ ス が同期 し ていなければ、 1 番目の ス レ ッ ド は 2 番目の ス レ ッ ド の Statement オブジ ェ ク ト にア ク セ ス
す る こ と はで き ません。 こ の こ と は、 JDBC API 内のほかのすべてのオブジ ェ ク ト に も 当ては ま り ます。
16
ス ク ロール可能な結果セ ッ ト
ス ク ロール可能な結果セ ッ ト
ス ク ロ ール可能な結果セ ッ ト に よ り 、 結果セ ッ ト 内を前方ま たは後方へ移動す る こ と がで き ます。 こ の タ イ プの
移動は、 それぞれ相対ま たは絶対に分類 さ れます。 first()、 last()、 beforeFirst()、 afterLast()、 お
よ び absolute() メ ソ ッ ド を呼び出 し て、 ス ク ロ ール可能な結果セ ッ ト のすべてに位置付け る こ と がで き ます。
相対的な位置付けは next()、 previous()、 お よ び relative() メ ソ ッ ド を使用 し ます。
ま た、 ス ク ロ ール可能な結果セ ッ ト は更新可能ま たは読み込み専用にす る こ と がで き ます。 こ れは、 その基盤に
あ る デー タ ベース に変更を加え る こ と がで き る か ど う かに関係 し ます。そのほかの用語 と し て、セ ン シテ ィ ビ テ ィ
は、 こ れ ら の変更が現在の結果セ ッ ト に影響する か ど う かに関連 し ます。
セ ン シテ ィ ブな結果セ ッ ト は、 こ れに行われた Insert、 Update、 Delete の結果をすべて反映 し ます。 PSQL の場合、
イ ン セ ン シテ ィ ブな結果セ ッ ト は こ れに加え ら れた変更を一切反映 し ません (デー タ の静的な スナ ッ プシ ョ ッ ト
です)。 言い換え る と 、 自身ま たはほかの人が行っ た変更を知 る こ と がで き ません。
セ ン シテ ィ ブお よ び イ ン セ ン シテ ィ ブな結果セ ッ ト は、 それぞれ ODBC の動的お よ び静的に対応 し ます。 セ ン シ
テ ィ ブな結果セ ッ ト は、 ト ラ ンザ ク シ ョ ン 分離レベルに READ_COMMITTED が設定 さ れてい る 場合、 自身で行っ
た変更お よ びほかの人が行っ た変更を反映 し ます。 ト ラ ンザ ク シ ョ ン分離レベルは、 Connection オブジ ェ ク ト を
使用 し て設定 し ます。 結果セ ッ ト の タ イ プは ス テー ト メ ン ト 作成で設定 さ れます。
結果セ ッ ト が イ ン セ ン シテ ィ ブの場合、現在の行番号を判断す る ために getRow() メ ソ ッ ド 呼び出 し を行 う こ と
がで き ます。 ま た、 イ ン セ ン シテ ィ ブな結果セ ッ ト では、 isLast()、 isFirst()、 isBeforeFirst()、 お よ
び isAfterLast() 呼び出 し を行 う こ と がで き ます。 セ ン シ テ ィ ブな結果セ ッ ト では、 isBeforeFirst() お
よ び isAfterLast() のみを呼び出す こ と がで き ます。 ま た、 イ ン セ ン シテ ィ ブな結果セ ッ ト では、 ド ラ イ バー
はユーザーが指示 し た フ ェ ッ チ方向を受け入れます。 セ ン シテ ィ ブな結果セ ッ ト では、 ド ラ イ バーは指示 さ れた
フ ェ ッ チ方向を無視 し ます。
17
PSQL JDBC 2 ド ラ イバーを使用 し たプ ログ ラ ミ ング
JDBC プ ログ ラ ミ ン グ例
次の例では、 "MYSERVER" サーバー上の "DB" と い う 名前のデー タ ベースへの接続を作成 し ます。 それか ら 、 そ
の接続上にセ ン シテ ィ ブで更新可能な Statement オブジ ェ ク ト を作成 し ます。 その Statement オブジ ェ ク ト を使用
し て "SELECT" ク エ リ を実行 し ます。 結果セ ッ ト オブジ ェ ク ト が取得 さ れ る と 、 "absolute" 呼び出 し を行い、 5 番
目の行に移動 し ます。 5 番目の行の 2 番目の列が整数値 101 に変更 さ れ る と 、 "updateRow" 呼び出 し で実際にその
更新を行い ます。
Class.forName("com.pervasive.jdbc.v2.Driver");
Connection conn=
DriverManager.getConnection("jdbc:pervasive://MYSERVER:1583/DB");
Statement stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs =
m_stmt.executeQuery("SELECT * FROM mytable");
rs.absolute(5);
rs.updateInt(2, 101);
rs.updateRow();
rs.close();
stmt.close();
conn.close();
18
JDBC API のリ フ ァ レ ン ス
3
JDBC API は、 Java プ ロ グ ラ ミ ン グ言語を使用 し た、 デー タ ベース と の標準 イ ン タ ーフ ェ イ ス です。
こ の章では、 以下の項目について説明 し ます。
„
「JDBC API の リ フ ァ レ ン ス」
„
「JDBC サンプル」
19
JDBC API の リ フ ァ レ ン ス
JDBC API の リ フ ァ レ ン ス
JDBC は、 Oracle の Web サ イ ト に記載 さ れてい る 標準 API です。 JDBC お よ び JDBC に関す る ド キ ュ メ ン ト の内
容を参照 し て く だ さ い。 ただ し 、 「PSQLJDBC ド ラ イ バーの制限」 に記述 さ れてい る PSQL ド ラ イ バーの API の
制約に注意 し て く だ さ い。
その他、 JDBC プ ロ グ ラ ミ ン グについての有用なサ イ ト と し て jakarta.apache.org の Tomcat 情報や www.apache.org
の Apache 情報があ り ます。
JDBC ド ラ イ バーを用いたプ ロ グ ラ ミ ン グに関する 概念情報については、 以下の ト ピ ッ ク を参照 し て く だ さ い。
„
「PSQL JDBC ド ラ イ バーの概要」
„
「PSQL JDBC 2 ド ラ イ バーを使用 し たプ ロ グ ラ ミ ン グ」
20
JDBC サン プル
JDBC サン プル
PSQL SDK では Web ダ ウ ン ロ ー ド に よ り 、 JDBC のサンプルが入手可能です。 デフ ォ ル ト の場所に イ ン ス ト ール
す る 場合、こ の場所は file_path\PSQL\SDK\JDBC\SAMPLES です (file_path はデフ ォ ル ト で \Program Files\Actian
です)。
PSQL フ ァ イ ルのデフ ォ ル ト の保存場所については、 『Getting Started With PSQL』 の 「PSQL フ ァ イ ルはど こ に イ
ン ス ト ール さ れますか?」 を参照 し て く だ さ い。
21
JDBC API の リ フ ァ レ ン ス
22