个人认为适宜在不经常修改的大批量读取数据库数据时应用。
仅以我读取一个区域内容的情况为例:
(1)在service类中实例化静态HashMap
private static HashMap<Long,String> areaNamehash =new HashMap<Long,String>();
(2)在service类中创建其setter方法
public static void setAreaNamehash(HashMap<Long, String> areaNamehash)
{
AreaService.areaNamehash = areaNamehash;
}
(3)在service类中创建action可使用的方法(如果缓存中已有值则应用缓存中值,如没有则通过DAO从数据库中取出)
public String getAreaName(int compId, long areaId)
{
String areaName = areaNamehash.get(areaId);
if(areaName == null || "".equals(areaName))
{
List<Areas> areas = dao.getAllAreaByComId(compId);
for (Areas ar : areas) {
long id = ar.getAreasid();
String name = ar.getAreaname();
areaNamehash.put(id, name);
}
areaName = areaNamehash.get(areaId);
}
return areaName;
}
(4)在service类中创建destroy方法,用来释放缓存
public void destroy()
{
areaNamehash.clear();
}
(5)创建随服务器启动的servlet类
<servlet>
<deion>load all cache</deion>
<servlet-name>loadCache</servlet-name>
<servlet-class>com.wiwj.util.cache.DoLoadCache</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
(6)实例化主体LoadCache类,运行其加载缓存的方法,方法具体模式如下:
a、实例化缓存的HashMap
HashMap<Long, String> areahash = new HashMap<Long, String>();
b、用方法将数据库中取出的信息通过DAO装入HashMap中
this.loadAreaCache(compId, areahash);
//方法如下
private void loadAreaCache(int compId, HashMap<Long, String> hash) {
AreaDAO dao = new AreaDAO();
List<Areas> areas = dao.getAllAreaByComId(compId);
for (Areas ar : areas) {
long id = ar.getAreasid();
String name = ar.getAreaname();
hash.put(id, name);
}
}
c、用service类中的setter方法将上面的HashMap装入service类中的静态HashMap中
AreaService.setAreaNamehash(areahash);
(7)在LoadCache类中创建destroy方法,调用service类中的destroy方法,释放缓存
public void destroy() {
AreaService.getInstance().destroy();
}
(8)在servlet类中调用LoadCache类中的destroy方法,释放内存
相关推荐
在J2EE项目开发中,Hibernate是一个非常重要的持久层框架,它简化了数据库与Java对象之间的交互,使得开发者可以更加专注于业务逻辑,而非繁琐的SQL语句编写。本实训主要围绕Hibernate框架技术展开,旨在帮助你深入...
【标题】"毕业论文——基于J2EE的Web开发与管理"揭示了本文的主要研究方向是使用J2EE...这样的论文对于学习J2EE技术的学生和开发者来说,是一份宝贵的参考资料,可以从中了解实际项目中的问题解决方法和技术实现细节。
**J2EE框架详解——构建企业级应用的基石** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的企业版,它为开发和部署分布式、多层的企业级应用程序提供了全面的框架。J2EE框架的核心在于其组件模型,包括...
总的来说,这五种策略——缓存、复制、并行处理、异步处理和资源池,都是J2EE性能优化的重要手段。在设计和开发J2EE应用时,结合这些策略,可以实现更高的性能、更好的可扩展性和更强健的代码。同时,还需要考虑监控...
**六、ORM框架——Hibernate** Hibernate是一种流行的ORM框架,它提供了一种在Java应用中操作数据库的面向对象方式。其核心功能包括: 1. **对象持久化**:将Java对象映射到数据库记录,简化数据操作。 2. **对象...
- **《J2EE应用开发实战——基于BEA WebLogic Server》**:该书系统介绍了J2EE平台的核心技术及其实现方法,包括Servlet、JSP、JDBC、JNDI、JMS、EJB等,并通过具体的项目案例进行深入解析。 - **重点内容**: - ...
本系统——"J2EE JAVA招标管理系统",便是基于这一强大的技术栈开发的,旨在实现高效、安全的招标业务流程自动化。 首先,让我们深入了解J2EE平台的核心组件和功能。J2EE包括一系列标准组件模型,如Servlet、JSP...
在构建J2EE应用时,架构工程师通常会使用到J2EE的基本部分——Servlet。如果架构师不使用Session Beans, Entity Beans, 或 Message Beans, 那么改进性能的方法就很少。只能采用增加CPU或更多的物理服务器等方法。EJB...
进入设计阶段,J2EE的三层架构模型——表现层(Web层)、业务逻辑层(EJB或Spring Bean层)和数据访问层(JDBC或Hibernate)——将被充分利用。表现层负责用户界面,可以使用HTML、CSS和JavaScript,结合Servlet和...
总结来说,J2EE三大框架——Spring、Hibernate和Struts各自承担着不同的职责,协同工作以提升Java企业级应用的开发效率和质量。掌握这三个框架,是Java开发者的必备技能,它们的应用和理解对于提升软件开发的专业...
首先,我们来看看其中的一个关键组件——Hibernate。Hibernate是一个对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。Hibernate通过提供API来简化Java应用程序与数据库之间的交互,减少了...
这些策略有助于开发者了解如何通过调整系统配置、优化代码来提升J2EE应用的性能。 总的来说,《J2EE性能测试》这本书为读者提供了一个全面的性能测试和优化指南,无论你是初级开发者还是经验丰富的架构师,都能从中...
书中不仅全面覆盖了JSP 2.0规范、Struts框架的各种用法、Hibernate的详细用法,以及Spring的基本用法等内容,还详细介绍了一种当前最流行、最规范的J2EE架构——轻量级J2EE应用架构,该架构分层清晰,各层间以松耦合...
本资源主要关注的是J2EE相关的面试题目,特别是与三大主流框架——Hibernate、Spring和Struts紧密相关的部分。这些框架在现代企业级应用开发中占据了核心地位,理解并掌握它们是成为合格J2EE开发者的关键。 ...
### J2EE常用架构——SSH与SSM框架详解 #### 一、概述 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为简化企业级应用开发而提出的一个技术平台,它提供了一系列用于构建可扩展、可靠和安全的...
在J2EE面试中,JSP(JavaServer Pages)是经常被考察的技术之一,因为它在Web应用程序开发中扮演着重要的角色。以下是一些关于JSP的常见面试知识点: 1. **JSP与SSI混合使用**: - JSP中的`...
在Java企业级开发中,三大框架——Struts、Hibernate和Spring——占据着核心地位。这些框架分别解决了Web应用中的展示层、持久层和业务逻辑层的问题,形成了高效且易于维护的开发模式。下面我们将详细探讨这三个框架...
5. **CRUD操作**:"添加、查询、删除数据"涉及到了数据库的基本操作——Create(创建)、Read(读取)、Update(更新)和Delete(删除)。在J2EE应用中,这些操作通常通过SQL语句在数据库层实现,而在用户界面层,...