JavaTM 2 Platform
Std. Ed. v1.3

パッケージ java.sql

JavaTM プログラミング言語を使用してデータソースのデータにアクセスして処理する API を提供します。

参照:
          説明

インタフェースの概要
Array SQL 型 ARRAY の Java プログラミング言語でのマッピングです。
Blob SQL BLOB 値の JavaTM プログラミング言語での表現 (マッピング) です。
CallableStatement SQL ストアドプロシージャを実行するのに使用されるインタフェースです。
Clob SQL CLOB タイプの JavaTM プログラミング言語でのマッピングです。
Connection 特定のデータベースとの接続 (セッション) を表現します。
DatabaseMetaData データベースに関する包括的な情報です。
Driver すべてのドライバクラスが実装しなければならないインタフェースです。
PreparedStatement プリコンパイルされた SQL 文を表すオブジェクトです。
Ref Java プログラミング言語での SQL REF 値のマッピングで、データベースの SQL 構造化型の値への参照となります。
ResultSet データベースの結果セットを表すデータのテーブルで、通常、データベースに照会する文を実行することによって生成されます。
ResultSetMetaData ResultSet オブジェクトの列のタイプとプロパティに関する情報を取得するのに使用できるオブジェクトです。
SQLData SQL ユーザ定義型のカスタムマッピングに使用されるインタフェースです。
SQLInput SQL 構造化型または個別の型のインスタンスを表す値のストリームを格納する入力ストリームです。
SQLOutput ユーザ定義型の属性をデータベースに書き戻すための出力ストリームです。
Statement 静的 SQL 文を実行し、作成された結果を得るために使用されるオブジェクトです。
Struct SQL 構造化型の Java プログラミング言語の標準のマッピングです。
 

クラスの概要
Date ミリ秒の値をラップする thin ラッパーであり、これによって JDBC がミリ秒の値を SQL DATE として扱うことができるようになります。
DriverManager JDBC ドライバを管理するための基本的なサービスです。
DriverPropertyInfo 接続を行うためのドライバプロパティです。
SQLPermission アプレットで実行されているコードが setLogWriter メソッドの 1 つを呼び出すときに、SecurityManager の確認対象となるアクセス権です。
Time java.util.Date の thin ラッパーで、このラッパーによって JDBC はこれを SQL TIME 値として識別できます。
Timestamp このクラスは、java.util.Date の thin ラッパーで、このラッパーによって JDBC API はこれを SQL TIMESTAMP 値として識別できます。
Types JDBC 型と呼ばれる、汎用の SQL 型を識別するために使用する定数を定義するクラスです。
 

例外の概要
BatchUpdateException バッチ更新オペレーション中にエラーが発生したときにスローされる例外です。
DataTruncation JDBC が予期せずデータの値を切り捨てる場合に、DataTruncation 警告を通知する (読み込み時) か、DataTruncation 例外をスローする (書き込み時) 例外です。
SQLException データベースアクセスエラーまたはその他のエラーに関する情報を提供する例外です。
SQLWarning データベースアクセスの警告に関する情報を提供する例外です。
 

パッケージ java.sql の説明

JavaTM プログラミング言語を使用してデータソースのデータにアクセスして処理する API を提供します。この API に含まれているフレームワークで、複数のドライバをインストールして複数のデータソースに動的にアクセスすることができます。

JDBC 2.0 コア API と呼ばれる java.sql パッケージには、JavaTM 2 SDK, Standard Edition, バージョン 1.2 リリースで多くの機能が追加されています。JDBC 2.0 API の新しいメソッド、フィールド、コンストラクタ、および例外は、javadoc コメントで「導入されたバージョン: 1.2」と表示しています。

クラス SQLPermission が JavaTM 2 SDK, Standard Edition, バージョン 1.3 リリースで追加されました。このクラスを使用すると、テーブル名、カラムデータなどの情報を格納する DriverManager に関連したログストリームへの無権限でのアクセスを防止できます。

JDBCTM 2.0 API に含まれるもの

注: 「導入されたバージョン: 1.2」と表示された API を使用するコードは、JDBC 2.0 コア API を実装する JDBC テクノロジドライバを使って実行する必要があります。使おうとする特定の機能をドライバが実装しているかを、ドライバのドキュメントで確認してください。

JDBCTM 2.0 API は、コア API とオプションパッケージ API の両方を含む完全な JDBC API であり、強力な業務用データベース処理機能を提供します。しかもこれは、SQL データベースに限定されません。JDBC2.0 API は実質的に、表形式のどのようなデータソースのデータへのアクセスも可能にします。

JDBC 2.0 API には次の 2 つのパッケージが含まれます。

java.sql パッケージに含まれるもの

java.sql パッケージは、次の用途の API を含んでいます。

JDBC 2.0 コア API の新しい機能

UDT のカスタムマッピング

JDBC 2.0 コア API の新しい機能によって、SQL で定義したユーザ定義型 (UDT) を Java プログラミング言語のクラスにマッピングすることが可能になりました。SQL 構造化型または SQL DISTINCT 型が、カスタムマッピングできる UDT です。次の 3 つのステップで、カスタムマッピングを設定します。
  1. SQL 構造化型または SQL DISTINCT 型を SQL で定義します。
  2. SQL UDT をマッピングする Java プログラミング言語のクラスを定義します。このクラスは SQLData インタフェースを実装している必要があります。
  3. 次の 2 項目を含む Connection オブジェクトの型マップにエントリを作成します。

これらが UDT の該当位置にあると、メソッド ResultSet.getObject またはメソッド CallableStatement.getObject を呼び出した場合に UDT は自動的に UDT へのカスタムマッピングを取得します。

型マップ

新しく生成された JDBC 2.0 Connection オブジェクトには、このオブジェクトに関連する、初期状態が空の型マップがあります。ユーザはこの型マップの UDT にカスタムマッピングを入力できます。メソッド ResultSet.getObject によってデータソースから UDT が取得されると、getObject メソッドは接続の型マップをチェックして、その UDT にエントリがあるかどうかを調べます。エントリがある場合、getObject メソッドは指示されたクラスに UDT をマッピングします。エントリがない場合、UDT は標準マッピングを使用してマッピングされます。

ユーザは Map オブジェクトとなる新しい型マップを作成し、それにエントリを作成し、カスタムマッピングを実行できる java.sql メソッドにそのエントリを渡すことができます。この場合、メソッドは、接続に関連した型マップではなく指定された型マップを使用します。

たとえば、以下のコードフラグメントは、SQL 型 ATHLETES が Java プログラミング言語のクラス Athletes にマッピングされることを指定します。コードフラグメントは Connection オブジェクト con の型マップを取得し、それにエントリを挿入し、その新しいエントリでその型マップを接続の型マップとして設定します。

	java.util.Map map = con.getTypeMap();
	map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));
	con.setTypeMap(map);

カスタムマッピングに使用されるクラス

SQL UDT がカスタムマッピングでマッピングされるクラスは、SQLData インタフェースを実装している必要があります。通常このクラスは、SQL 構造化型の各属性のフィールド、または SQL DISTINCT 型の単一フィールドを定義します。ResultSet.getObject メソッドによってデータソースから UDT が取得されると、その UDT はこのクラスのインスタンスとしてマッピングされます。プログラマは、Java プログラミング言語の他のオブジェクトの場合と同じようにこのクラスインスタンスで操作し、PreparedStatement.setObject メソッドを呼び出して、行なった変更をこのクラスインスタンスに保存することができます。PreparedStatement.setObject メソッドは逆にそのクラスインスタンスを SQL 型にマッピングします。

カスタムマッピングのクラスの実装をツールによって行うことが期待できます。通常の実装では、プログラマは単に SQL UDT の名前、その名前がマッピングされるクラスの名前、および UDT の各属性がマッピングされるフィールドの名前を指定するだけです。ツールはこの情報を使って SQLData.readSQL メソッドおよび SQLData.writeSQL メソッドを実装します。readSQL メソッドが該当の SQLInput.readXXX メソッドを呼び出して SQLInput オブジェクトから各属性を読み込み、writeSQL メソッドが SQLOutput.writeXXX メソッドを呼び出して SQLOutput オブジェクトを使って各属性をデータソースに書き込みます。

通常アプリケーションプログラマが SQLData を直接呼び出すことはなく、SQLInput メソッドおよび SQLOutput メソッドは、アプリケーションコードによってではなく SQLData メソッドによって内部で呼び出されます。

パッケージの仕様

関連項目

基本インタフェースおよびチュートリアルの概要については、以下を参照してください。


JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.