メタデータのキャッシュ
このセクションでは、メタデータのキャッシュを有効にする方法とメタデータキャッシュを更新する方法について説明します。
データをクエリできるようになる前に、コネクタは関連するメタデータを取得する必要があります。デフォルトでは、メタデータはメモリにキャッシュされ、接続間で共有されます。しかし、プロセスにまたがって保持したい場合、またはメタデータ要求が高負荷の場合は、解決策はメタデータをディスクにキャッシュすることです。
メタデータキャッシュの有効化
メタデータのキャッシュを有効にするには、CacheMetadata をtrue に設定し、接続文字列の設定方法についてはキャッシュ接続の設定 を参照してください。本製品 は、メタデータが初めて必要になったときにメタデータをキャッシュし、それ以降のリクエストでは、そのメタデータを使用します。
メタデータキャッシュの更新
メタデータはキャッシュされるため、ライブソース上のメタデータに対する変更(カラムや属性の追加や削除など)は、メタデータキャッシュに自動的には反映されません。ライブメタデータを更新するには、キャッシュされたデータをdelete またはdrop する必要があります。
コードからのメタデータキャッシュ
以下のコードを使用して、メタデータキャッシュを構築できます。これは、オブジェクトリレーショナルマッピングフレームワーク(例えばHibernate)を使用する場合に特に役立ちます。
Connection conn = DriverManager.getConnection("jdbc:woocommerce:Cache Location=C:\\cdata.woocommerce.db;AutoCache=True; Url=http://localhost/woocommerce/;ConsumerKey=ck_ec52c76185c088ecaa3145287c8acba55a6f59ad;ConsumerSecret=cs_9fde14bf57126156701a7563fc87575713c355e5;"); DatabaseMetaData table_meta = conn.getMetaData(); ResultSet rs=table_meta.getTables(null, null, "%", null); while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); System.out.println("Cached metadata for table: "+tableName); ResultSet cols = table_meta.getColumns(null, null, tableName, null); while(rs.next()){ } } System.out.println(); System.out.println("All tables cached."); conn.close();