Java Class Library Guide (v11)

Java データ型の問題点

ここでは、Pervasive Java プログラマに役立つと思われる情報を示します。

バイナリ ラージ オブジェクトのサポート

Java クラス ライブラリにバイナリ ラージ オブジェクト(BLOB)処理のサポートが追加されました。BLOB は大きな(最大 4 ギガバイト)バイナリ データを表し、Pervasive PSQL エンジンでは、LONGVARBINARY データ型として示されます。Java クラス ライブラリは、次のメソッドでこれらのデータ型をサポートします。これらは pervasive.database.Row クラスにあります。

public void setObject(int columnNumber, Serializable object),

public void setObject(String columnName, Serializable object),

public Serializable getObject(int columnNumber),

public Serializable getObject(String columnName),

public InputStream getBinaryStream(int columnNumber),

public InputStream getBinaryStream(String columnName),

public void setBinaryStream(int columnNumber, InputStream inStream),

public void setBinaryStream(String columnName, InputStream inStream)

ここで、columnNumber は、行バッファー内の列のシーケンス番号です。シーケンス番号はゼロから始まります。columnName は行バッファー内の列の名前です。object はデータベースに格納されるシリアル化可能な Java オブジェクトです。inStream は、データベースにバイトをストリームとして書き込むのに使用します。

上記のメソッドは 2 つのカテゴリに分割されます。1 つは、Serialized Java オブジェクトで動作するもので、もう 1 つは JavaInputStream オブジェクトで動作するものです。これらのカテゴリは、それぞれ次のセクションで詳しく説明します。次のセクションの例では、以下のスキーマで Employee という名前のテーブルが作成されていることを前提としてます。


メモ

Employee_Data および Manager_Report には 「not null」 の指定があります。これは、Pervasive PSQL 2000 以降のバージョンがサポートする「真のヌル」を Java クラス ライブラリがサポートしていないためです。


table Employees (SS_Num ubigint primary key,
   Employee_Data longvarbinary not null,
   Manager_Report longvarbinary not null)

SQL インターフェイスで「1 バイト整数列」に挿入されたデータを Java インターフェイスで取得することはできない

Pervasive データベース エンジンでは、1 バイト整数は 0 ~ 255 の値を持つものと解釈されます。一方 Java では、このバイト型は符号付きで、-128 ~ 127 の値を持つものと解釈されます。

このような解釈の違いがあるので、データが誤って解釈されないように、コードから以下のプロシージャを実行する必要があります。

Java の解釈と Pervasive データベース エンジンの解釈との間で、1 バイトの整数を変換するには

int theOneByteInt = 0;

pervasive.database.Row row = _rowset.getNext();

theOneByteInt = row.getByte("OneByte") & 0x00FF;

listCourses.add(theOneByteInt + " ");


メモ

すべての Java データ型は符号付きです。


Java データ型の詳細について、あるいはその他の Java 言語に関する情報は、http://java.sun.com/docs/books/tutorial/index.html を参照してください。


Java クラス ライブラリ使用時の最初の手順

サンプル データベース ファイル