Adapter for JDBC は、テーブルおよびビュー・ビジネス・オブジェクトをサポートします。 データベースを使用するアプリケーションの場合、それぞれのビジネス・オブジェクトは データベース表やビューに対応し、オブジェクト内の単純属性がそれぞれ テーブルやビュー内の列に相当します。さらに、アダプターは、ストアード・プロシージャー およびクエリー・ビジネス・オブジェクトもサポートします。
この場合、ビジネス・オブジェクトがストアード・プロシージャー用に生成されます。ストアード・プロシージャーのすべての入力および出力パラメーターには、ビジネス・オブジェクト内に対応する属性があります。入力または出力パラメーターのいずれかが、配列や構造体などの複合型である場合、対応するビジネス・オブジェクト属性は、配列または構造体の属性を含む子ビジネス・オブジェクトを持つ子ビジネス・オブジェクト型です。ストアード・プロシージャーが結果セットを戻した場合、戻された結果セットの属性を格納する子ビジネス・オブジェクトが作成されます。
ストアード・プロシージャー・ビジネス・オブジェクトの構造を示す 2 つの例を、以下に示します。ビジネス・オブジェクト ScottStrtValues および ScottStrtvaluesStrt が、1 つの入力タイプと 2 つの出力タイプを持つストアード・プロシージャーから生成されます。 出力パラメーターの 1 つは、構造体データ型です。エンタープライズ・メタデータ・ディスカバリーによって、構造体型のビジネス・オブジェクト ScottStrtValuesStrt が生成され、子オブジェクトとして親ビジネス・オブジェクト ScottStrtValues に追加されます。親ビジネス・オブジェクト内の構造体型の属性については、ChildBOType アプリケーション固有情報が Struct に設定され、型が構造体であることを示します。ChildBOTypeName アプリケーション固有情報は、データベース内のユーザー定義構造体型の値に設定されます。
ScottStrtValues ビジネス・オブジェクトの例
<?xml version="1.0" encoding="UTF-8" ?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvalues" xmlns:scottstrtvalues=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvalues" xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata" xmlns:scottstrtvaluesstrt=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvaluesstrt"> <import namespace=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvaluesstrt"
schemaLocation="ScottStrtvaluesStrt.xsd"/> <import namespace="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"
schemaLocation="JDBCASI.xsd"/> <annotation> <appinfo source="commonj.connector.asi"> <asi:annotationSet xmlns:asi="commonj.connector.asi" asiNSURI=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"/> </appinfo> </annotation> <complexType name="ScottStrtvalues"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCBusinessObjectTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPName>SCOTT.STRTVALUES</jdbcasi:SPName> <jdbcasi:MaxNumOfRetRS>0</jdbcasi:MaxNumOfRetRS> <jdbcasi:ResultSet>false</jdbcasi:ResultSet> </jdbcasi:JDBCBusinessObjectTypeMetadata> </appinfo> </annotation> <sequence minOccurs="1" maxOccurs="1"> <element name="pkey" type="int" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType>IP</jdbcasi:SPParameterType> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="fname" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType>OP</jdbcasi:SPParameterType> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="strt" type="scottstrtvaluesstrt:ScottStrtvaluesStrt"
minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType>OP</jdbcasi:SPParameterType> <jdbcasi:ChildBOType>STRUCT</jdbcasi:ChildBOType> <jdbcasi:ChildBOTypeName>STRUCT1</jdbcasi:ChildBOTypeName> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> </sequence> </complexType> </schema>
ScottStrtValuesStrt ビジネス・オブジェクトの例
<?xml version="1.0" encoding="UTF-8" ?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvaluesstrt" xmlns:scottstrtvaluesstrt=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/scottstrtvaluesstrt" xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <import namespace="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"
schemaLocation="JDBCASI.xsd"/> <annotation> <appinfo source="commonj.connector.asi"> <asi:annotationSet xmlns:asi="commonj.connector.asi" asiNSURI=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"/> </appinfo> </annotation> <complexType name="ScottStrtvaluesStrt"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCBusinessObjectTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPName>SCOTT.STRTVALUES</jdbcasi:SPName> </jdbcasi:JDBCBusinessObjectTypeMetadata> </appinfo> </annotation> <sequence minOccurs="1" maxOccurs="1"> <element name="name" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType></jdbcasi:SPParameterType> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="title" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType></jdbcasi:SPParameterType> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="dept_num" type="int" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SPParameterType></jdbcasi:SPParameterType> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> </sequence> </complexType> </schema>
クエリー・ビジネス・オブジェクトの構造を示す select ステートメントの例を示します。以下の select ステートメントの場合を考えます。
SELECT C.custid, C.custname, A.phone FROM customer C, address A WHERE (C.custid = A.custid) AND (C.custname LIKE ?)
クエリー・ビジネス・オブジェクトのフォーマットは以下のようになります。
ビジネス・オブジェクト・レベルのアプリケーション固有情報は、次のとおりです。
SelectStatement = SELECT C.custid, C.custname, A.phone FROM customer C, address A WHERE (C.custid = A.custid) AND (C.custname LIKE ?)
サポートされる操作は RetrieveAll です。
以下の例は、クエリー・ビジネス・オブジェクト定義ファイルを示しています。
<?xml version="1.0" encoding="UTF-8" ?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/querybo1" xmlns:querybo1=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/querybo1" xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <import namespace="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"
schemaLocation="JDBCASI.xsd"/> <annotation> <appinfo source="commonj.connector.asi"> <asi:annotationSet xmlns:asi="commonj.connector.asi" asiNSURI=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"/> </appinfo> </annotation> <complexType name="QueryBO1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCBusinessObjectTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:SelectStatement>select * from customer where
pkey=?</jdbcasi:SelectStatement> </jdbcasi:JDBCBusinessObjectTypeMetadata> </appinfo> </annotation> <sequence minOccurs="1" maxOccurs="1"> <element name="pkey" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:ColumnName>PKEY</jdbcasi:ColumnName> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="fname" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:ColumnName>FNAME</jdbcasi:ColumnName> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="lname" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:ColumnName>LNAME</jdbcasi:ColumnName> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="ccode" type="string" minOccurs="0" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:ColumnName>CCODE</jdbcasi:ColumnName> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="parameter1" type="string" minOccurs="1" maxOccurs="1"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:ColumnName>Parameter1</jdbcasi:ColumnName> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> <element name="jdbcwhereclause" type="string" minOccurs="0" maxOccurs="1"
default="where pkey=?"> <annotation> <appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:JDBCAttributeTypeMetadata xmlns:jdbcasi=
"http://www.ibm.com/xmlns/prod/websphere/j2ca/jdbc/metadata"> <jdbcasi:PrimaryKey>false</jdbcasi:PrimaryKey> </jdbcasi:JDBCAttributeTypeMetadata> </appinfo> </annotation> </element> </sequence> </complexType> </schema>
ビジネス・オブジェクトは、フラットまたは階層です。フラットのビジネス・オブジェクトの属性は、すべて単純属性であり、データベース表の 1 行を表します。 階層 ビジネス・オブジェクトという用語は、あらゆるレベルの子ビジネス・オブジェクトをすべて含む、完全なビジネス・オブジェクトを指します。個別 ビジネス・オブジェクトという用語は、そのビジネス・オブジェクトが子オブジェクトを含んでいるか、そのビジネス・オブジェクトが子として属しているかに関係なく、1 つのビジネス・オブジェクトを指します。個別ビジネス・オブジェクトは、複数のデータベース表にまたがるビューを表すことができます。最上位 ビジネス・オブジェクトという用語は、階層の頂点にあり、それ自体は親ビジネス・オブジェクトを持たない個別ビジネス・オブジェクトを指します。
階層ビジネス・オブジェクトは、子ビジネス・オブジェクト、子ビジネス・オブジェクトの配列、またはその組み合わせを表す属性を持ちます。そして、子ビジネス・オブジェクトも、それぞれ自身の子ビジネス・オブジェクトまたはビジネス・オブジェクトの配列を持つことができます。この関係は階層の下に向かって続きます。
単一カーディナリティー関係 は、親ビジネス・オブジェクト内の属性が 1 つの子ビジネス・オブジェクトを表すときに発生します。この場合、その属性は、その子ビジネス・オブジェクトと同じタイプです。
複数カーディナリティー関係 は、親ビジネス・オブジェクト内の属性が子ビジネス・オブジェクトの配列を表すときに発生します。この場合、その属性は、その子ビジネス・オブジェクトと同じタイプです。
どちらのカーディナリティーのタイプでも、親ビジネス・オブジェクトと子ビジネス・オブジェクトの間の関係は、その関係を保管するビジネス・オブジェクトのキー属性に含まれるアプリケーション固有情報によって記述されます。このアプリケーション固有情報の 詳細については、『属性に関するアプリケーション固有情報』の表にある 『ForeignKey』を参照してください。
(c) Copyright IBM Corporation 2005, 2006.
(C) Copyright IBM Japan 2006
このインフォメーション・センターでは Eclipse テクノロジー (http://www.eclipse.org) が採用されています。