S2Dao.NET TOPページへ
S2Dao.NET - テーブル定義情報のキャッシュ
S2Dao.NETでは、Daoインターフェースの初期化時にデータベースからテーブル定義情報を取得しています。
テーブル定義情報の取得に時間がかかる場合、
テーブル定義情報をキャッシュするDataSetを参照することで取得時間の短縮が可能です。
テーブル定義情報をキャッシュするDataSetは、Visual Studioのデザイナ画面を使用して作成することが可能です。
例えば、次の手順に従って作成します。
- Visual Studioのソリューション・エクスプローラからDataSetを作成するフォルダを選択し、
コンテキストメニューから「追加」→「新しい項目」を選択します。
- 「新しい項目の追加」ダイアログを表示するのでテンプレート一覧から「データセット」を選択、
ファイル名にデータセットのファイル名を入力し、「追加」ボタンをクリックします。。
- DataSetがソリューション・エクスプローラに追加され、DataSetのデザイナ画面が表示されます。
- サーバー・エクスプローラからデータベースに接続します。
- テーブル一覧からS2Dao.NETで使用するテーブルをDataSetのデザイナ画面にドラッグ&ドロップします。
- DataSetのデザイナ画面を保存して終了します。
テーブル定義情報のキャッシュを使用するために
Dao.dicon(S2Dao.NETのコンポーネントを定義しているDiconファイル)を次のように変更します。
(変更前)
<components namespace="Dao">
....
<component class="Seasar.Dao.Impl.FieldAnnotationReaderFactory" />
<component class="Seasar.Dao.Impl.DaoMetaDataFactoryImpl" />
<component name="Interceptor" class="Seasar.Dao.Interceptors.S2DaoInterceptor" />
</components>
(変更後)
<components namespace="Dao">
....
<component class="Seasar.Dao.Impl.FieldAnnotationReaderFactory" />
<component class="Seasar.Dao.Impl.DaoMetaDataFactoryImpl">
<property name="DBMetaData">
<component class="Seasar.Extension.ADO.Impl.DatabaseMetaDataImpl">
<property name="MetaDataSetClassName">"Seasar.ContainerNet42.Dao.EmployeeDataSet"</property>
</component>
</property>
</component>
<component name="Interceptor" class="Seasar.Dao.Interceptors.S2DaoInterceptor" />
</components>
Seasar.Extension.ADO.Impl.DatabaseMetaDataImplクラスのMetaDataSetClassNameプロパティにDataSetの作成で作成した
DataSetクラスの名前空間+クラス名を設定します。名前空間+クラス名は、[DataSet].Designer.csから確認できます。
|