`

标签详细说明带实例代码6

阅读更多
缓存Mapped Statement结果集
通过在查询statement中指定cacheModel属性,可以缓存Mapped Statement中得到的查询结果。Cache model是在SQL Map XML文件中定义的可配置缓存模式,可以使用cacheModel元素来配置。例子如下:
<cacheModel id="product-cache" type ="LRU" readOnly=”true” serialize=”false”>
<flushInterval hours="24"/>
<flushOnExecute statement="insertProduct"/>
<flushOnExecute statement="updateProduct"/>
<flushOnExecute statement="deleteProduct"/>
<property name=”cache-size” value=”1000” />
</cacheModel>
上面的cache model创建了一个名为“product-cache”的缓存,使用“近期最少使用”(LRU)实现。Implemention属性的名称要么是全限定的类名,要么是缓存实现的别名(参见下面的内容)。根据cacheModel中flush元素的内容,上面的例子每24小时刷新一次。一个cacheModel只能有一个flushInteval元素,它可以使用hours,minutes,seconds或milliseconds来设定。另外,当insertProduct,updateProduct或deleteProduct的Mapped Statement执行时,缓存也被刷新。cacheModel可以定义任意多的flushOnExecute元素。某些cache model的实现可能需要另外的属性,如上面的“cache-size”属性。在LRU cache model中,cache-size指定了缓存储存的项数。一旦配置了cache model,您可以指定mapped statement使用的cache model,例如:
<statement id=”getProductList” cacheModel=”product-cache”>
select * from PRODUCT where PRD_CAT_ID = #value#
</statement>
只读 VS 可读写
框架同时支持只读和可读写缓存。只读缓存可供所有用户共享,因此性能更好。但是,只读缓存的数据不应该被修改。相反,要更新数据,必须从数据库(或读写缓存)中读出数据。因此,如果要读出数据并修改,则需要可读写缓存。要使用只读缓存,在cacheModel设置readOnly=“true”。要使用可读写缓存,则设置readOnly=“false”。缺省为只读缓存(true)。
Serializable可读写缓存
正如您所知道的,只对当前Session有效的缓存对整体应用性能的提高作用有限。Serializable可读写缓存可以提高整体应用(而不仅仅是每个Session)的性能。这种缓存为每一个Session返回缓存对象不同的实例(复本)。因此每一个Session都可以安全修改返回的对象。不同之处在于,通常您希望从缓存中得到同一个对象,但这种情况下得到的是不同的对象。还有,每一个缓冲在Serializable缓存的对象都必须是Serializable的。这意味着不能同时使用Serializable缓存和延迟加载,因为延迟加载代理不是Serializable的。想知道如何把Serializable缓存,延迟加载和联合查询结合起来使用,最好的方法是尝试。要使用Serializable缓存,设置readOnly=“false”和serialize=“true”。缺省情况下,缓存是只读模式,不使用Serializable缓存。只读缓存不需要Serializable。
缓存类型Cache Model使用插件方式来支持不同的缓存算法。它的实现在cacheModel的用type属性来指定(如上所示)。指定的实现类必须实现CacheController接口,或是下面4个别名中的其中之一。Cache Model实现的其他配置参数通过cacheModel的property元素来设置。目前包括以下的4个实现:
分享到:
评论

相关推荐

    DSP 实例代码很不错哦

    "教程"标签则暗示了这些代码不仅可供参考,还可能带有详细的注释和解释,便于自学和教学。"代码"标签则明确指出这是编程实现,而非理论文档。 压缩包内的"实验示例"文件名表明,这些代码可能来源于实验室环境,是...

    实例代码.Rar

    6. **说明.html**:提供关于压缩包内容的详细说明,包括实例的使用方法、目的或开发环境等信息。 7. **Mylist.mdb**:这是一个Access数据库文件,很可能用于存储网站的后台数据,例如用户信息、产品数据等。 8. **...

    c#网络编程实例教程源代码

    压缩包中的"C#网络编程_PPT"可能是一个包含教程讲解的PowerPoint演示文稿,其中可能包含了详细的概念解释、步骤说明以及代码示例的分析。通过PPT,你可以系统地学习网络编程的各个方面,从基础知识到高级技术,如套...

    部分标签文档实例解释说明

    【标题】:“部分标签文档实例解释说明” 这篇文档主要针对的是如何理解和运用“部分标签”这一概念,这在编程和网站开发中是非常重要的一个部分。部分标签,通常指的是在网页模板或者应用程序中,用于组合和复用...

    C#分词程序源代码实例

    标题 "C#分词程序源代码实例" 涉及的核心知识点主要集中在C#编程语言、文本处理和分词算法上。C#是Microsoft开发的一种面向对象的编程语言,广泛应用于Windows平台上的软件开发,包括桌面应用、Web应用以及游戏开发...

    c#实例代码chapter2

    1. **程序使用说明.doc**:这通常是一个文档,详细解释了如何使用这些实例代码,包括可能的输入、预期的输出以及执行步骤。阅读这个文档将帮助用户更好地理解每个示例的目的和操作方式。 2. **Desktop_.ini**:这是...

    小游戏实例代码资源网盘地址

    【标签】:“网盘地址”标签提示我们,这些小游戏实例代码是通过网络云存储服务进行分发的,可能是为了方便用户快速下载和分享。通常,这样的资源可能会包含多个文件夹,分别对应不同游戏项目,每个项目下会有相关的...

    源代码-生成柱状图实例代码.zip

    【标题】"源代码-生成柱状图实例代码.zip" 提供的是一个使用ASP(Active Server Pages)技术生成柱状图的源代码示例。在ASP中,我们通常利用服务器端脚本语言如VBScript或JScript来动态生成网页内容。在本案例中,这...

    jsp九大内置对象实例代码学习,可运行,有注释

    以下是这九个内置对象的详细说明,以及如何在实际开发中使用它们: 1. **pageContext对象**: - `PageContext`对象提供对整个JSP页面的访问,可以获取其他所有内置对象的引用,也可以用来存储页面级的数据。 - ...

    下载进度条实例+代码+说明

    标题中的“下载进度条实例+代码+说明”指的是一个实现下载功能并带有进度显示的程序示例,通常在开发过程中,这种组件用于提供用户友好的界面,让用户了解文件下载的状态。这种实例对于开发者来说非常有价值,因为它...

    PHPCMS标签的详细说明

    ### PHPCMS标签的详细说明 #### 中文标签 PHPCMS系统为了简化模板的制作流程及提升用户体验,引入了中文标签的概念。这种标签模式相较于早期版本中的长标签调用方式更加直观易懂,降低了非专业技术人员制作模板的...

    爬虫代码实例源码大全(实例).rar

    此外,它还提到包含了开发文档,这意味着除了源代码外,还有详细的步骤说明、功能解释以及可能的调试和优化指南,帮助学习者理解和实现这些代码。 【标签】"计算机网络"表明这些代码涉及到网络通信,即如何通过HTTP...

    JAVA编程经典实例100个[源代码]

    标题中的“JAVA编程经典实例100个[源代码]”指的是这是一份包含100个Java编程的经典示例的资源包,其中包含了源代码,可以帮助学习者深入理解和掌握Java编程语言的各种核心概念和应用。 描述部分提到,每个实例目录...

    vc基于对话框编程实例源代码

    "源代码"标签表明这个压缩包包含了实现这些功能的实际代码。在www.maoyeah.com.txt、maoyeah和maoyeah_com这三个文件中,可能包含了关于如何使用这些对话框实例的说明、示例代码或者可能是实际的源码文件。`...

    COM编程精彩实例 代码

    标题中的"COM编程精彩实例 代码"意味着这个压缩包包含了使用COM技术的多个实例代码,这些实例可能是解决特定问题或展示特定功能的。通过分析和学习这些实例,开发者可以深入理解COM组件的创建、注册、调用以及它们...

    PHP导入和导出CSV EXCEL实例代码 mysql数据库

    标题中的"PHP导入和导出CSV EXCEL实例代码"指的是使用PHP编写程序,实现对CSV(逗号分隔值)和Excel文件的数据处理。CSV格式是一种简单且通用的数据交换格式,而Excel文件(通常是.xlsx或.xls格式)通常用于更复杂的...

    dsp FIR实例程序代码

    “程序代码”明确了这是关于编程实现的,而“滤波”则说明了代码的核心功能是对信号进行滤波处理,可能包括低通、高通、带通或带阻滤波。 从“压缩包子文件的文件名称列表”来看,只有一个文件名为"FIR",这可能是...

    QT4 GUI 实例代码

    QT4 GUI(图形用户界面)实例代码是一套用于学习和实践C++ GUI编程的资源,特别适合初学者。QT4是Qt库的一个版本,它是一个跨平台的应用程序开发框架,支持Windows、Linux、Mac OS X等多种操作系统。通过QT4,开发者...

    xhtml布局实例说明书例子代码

    本教程将深入探讨XHTML布局实例,通过具体的代码示例来帮助Java学习者更好地理解网页设计的基础。 XHTML布局的核心在于对元素的精确控制,它强调语义化标签的使用,这有助于搜索引擎优化和无障碍访问。例如,`&lt;div&gt;...

    top2812 官方 实例 源代码

    【标签】"top2812 官方 实例 源代码"进一步巩固了我们的理解,即这个资源主要围绕"top2812"进行,包含了官方支持的实例和源代码,适合开发者进行学习和调试。 【压缩包子文件的文件名称列表】:TOP2812_CODE可能...

Global site tag (gtag.js) - Google Analytics