JCS 使用

JCS就是一个通用的对象缓冲,Hibernate可以使用JCS来缓冲查询结果集。如果要对一个持久对象做缓冲,就是在hbm的class标签前面加一行:

<jcs-cache usage="read-only"/>

<jcs-cache usage="read-write"/>

这是一个只读缓冲,只对Read操作做缓冲,也可以用read-write,对update也进行缓冲,不过不能用在集群环境中。

例如:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
<class name="com.fankai.Cat" table="cat">
<jcs-cache usage="read-only"/>
<id name="id" unsaved-value="null">
<generator class="uuid.hex"/>
</id>
<property name="name" length="16" not-null="true"/>
<property name="sex" length="1" not-null="true"/>
<property name="weight" />
</class>
</hibernate-mapping>

cache.ccf是JCS的配置文件,主要配置一下:
jcs.default.cacheattributes.MaxObjects=5000 (缓冲区容纳对象大小)
jcs.default.elementattributes.MaxLifeSeconds=240(最大缓冲时间)

除了对整个持久对象,也可以对对象的集合属性进行缓冲,那就是在property标签下面写就OK了。

第一次读取数据的时候,不论用List还是Iterator都会把数据填充到缓冲区内,以后碰到相同的查询结果,就不去数据库取,直接到JCS缓冲区取,但是只有Iterator才能去缓冲区取数据,List总是直接从数据库取,无法利用缓冲区。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值