Eva
Java粉絲募集中
  • 簡介
  • 我們的優勢
  • 最新消息
  • 下載與使用
  • 範例與說明
    • Eva Objects >
      • Bean類別定義
      • Entity型別定義
      • Struct型別定義
      • 建立Entity空白物件
      • 建立Entity修改物件
      • 建立Entity條件物件
      • 建立Struct值物件
    • Eva_ORM >
      • ORM程式主體
      • 使用條件物件執行操作
      • 執行更複雜條件的操作.
      • 分頁取回資料
      • 操作JDBC的參數
      • Array Property的操作
      • Collection Property的操作
      • 更複雜的Collection Property
      • 指定表格名稱
      • 新增資料庫Dialect
    • Eva_IOC >
      • IOC程式主體
      • AOP應用
    • Eva_Struct >
      • Struct範例
      • Bit Strcut範例
      • 指標範例
      • 於Eva_ORM中使用
    • Eva_Sort >
      • 依指定Properties排序
      • 部份排序
      • 優先排序部份
    • Eva_Cache >
      • hashing-based cache
      • 非hashing-based cache
  • API列表
  • 技術支援
    • 協助開發
  • 相關書籍

hashing-based cache.

傳統以hashing實作的Cache有很多種類, 最簡單地實作, 就是Java所內建提供的HashMap, TreeMap類別, 或是它們的執行緒安全(Thread-Safed)版本ConcurrentHashMap, ConcurrentSkipListMap. 若想以這些類別來儲存Eva的查詢結果時, 我們需將條件物件包裝成ConditionKey型別來能正確地執行, 例如下面的例子.

package example7;

import java.util.HashMap;
import java.util.Map;

import com.logntw.eva.bean.condition.ConditionObj;
import com.logntw.eva.condition.OP;
import com.logntw.eva.hb.ConditionKey;
import com.logntw.eva.orm.DBConnectionProvider;
import com.logntw.eva.orm.ORMapper;
import com.logntw.eva.orm.ORMappers;
import com.logntw.eva.orm.defo.DefaultTableCreator;
import com.logntw.eva.orm.defo.DefoORMappers;
import com.logntw.eva.orm.defo.conn.HSQLDB_1_8ConnectionProvider;

import example6.EntityS;

public class ConditionKeyExample
{
  public static void main(String[] args) throws Exception
  {
    DBConnectionProvider db = new HSQLDB_1_8ConnectionProvider("dbName");
    ORMappers mappers = DefoORMappers.getInstance(db);
    DefaultTableCreator.create(mappers, EntityS.class);
    ORMapper<EntityS> mapper = mappers.getMapper(EntityS.class);
    Map<ConditionKey, Object> cache = new HashMap<ConditionKey, Object>();
    
    ConditionObj<EntityS> condition = mapper.newCondition();
    condition.If(OP.EQUAL).setId1("10");
    condition.Or();
    condition.If(OP.EQUAL).setId1("20");
    
    ConditionKey key = new ConditionKey(condition);
    cache.put(key, "STR");
    Object obj = cache.get(key); // "STR"      
  }
}
Powered by Create your own unique website with customizable templates.