尽管seam文档和其它相关的资料中,都声称entityManager的抽象程度已经很高了,没有使用DAO模式的需要,但是从这次的项目实践来看,将 部分的数据访问放到DAO里是很有必要的。首先,使用DAO有易于做单测。如果不使用DAO,需要访问数据库的Action就注入一个 entityManager直接访问数据库,这样写起来方便,但是在单测这个action的时候,要么得做一个假的entityManager,要么得真 的创建一个entityManager并准备好数据。这些都比做一个假的DAO来得要复杂。其次,如果每个ACTION里都自己拼接sql来查询数据,这 些查询SQL将会分散到各个ACTION中,难以管理和维护。再次,DAO更易于重用。很多的时候,一个查询语句在很多地方都初用到,如果每个地方都写一 遍自己的SQL,显然是不好的,放到一个单独的组件里做成DAO,将会更加易于重用。任何需要的ACTION都只要注入这个DAO就可以用了。
那么如何实现DAO才好呢?为了尽量让这个被经常调用到的组件轻量化,我觉得使用的statelss scope的普通java bean 就是行了,为了便于测试使用dao的其它组件,为DAO设计成接口与实现分离会更加地好。
分享到:
相关推荐
使用Seam的`@Entity`和`@PersistenceContext`注解,开发者可以直接在组件中进行CRUD(创建、读取、更新、删除)操作,而无需编写大量的DAO(数据访问对象)代码。 Seam还支持AJAX(异步JavaScript和XML),通过Seam...
Seam的Contexts and Dependency Injection (CDI)容器使得JSF组件可以轻松获取服务或数据,而不需要手动管理对象的生命周期。 **Hibernate在项目中的应用** 在这个练习项目中,Hibernate可能被用来处理数据持久化。...
为了提高代码的可维护性和扩展性,Seam推荐使用DAO(Data Access Object)模式进行数据访问操作。DAO模式可以将数据访问逻辑封装在一个独立的层中,使得业务逻辑层与数据访问层分离,增强代码的模块化和可测试性。 ...
1)JSP+javabean+DAO(Ajax:anywhere) 2)Struts+spring+hibernate3(AJax:DOJO) 3)JSF+richfaces+seam+EJB 总共3个完整的实例,并配有需求分析~~~~~~~~,绝对经典!
安全是企业级应用不可或缺的部分,书中也会涉及Seam的安全特性,如身份验证和授权。Seam集成了JAAS(Java Authentication and Authorization Service),提供了灵活的安全控制机制,使开发者能够轻松实现用户认证和...
4. **DAO模式**:了解DAO(Data Access Object)模式,掌握DO、PO、VO、DTO、Domain Object等术语的含义。 #### 七、企业级应用开发 1. **EJB2**:探索Enterprise JavaBeans 2.0规范,包括EntityBean和SessionBean...
1.2 范式不匹配 1.2.1 粒度问题 1.2.2 子类型问题 1.2.3 同一性问题 1.2.4 与关联相关的问题 1.2.5 数据导航的问题 1.2.6 不匹配的代价 1.3 持久层和其他层 显示全部信息第一部分 从...
Java Web框架如SSH(Struts、Spring、Hibernate)、iBatis、WebWork、Seam等虽在企业级应用中表现出色,但它们的复杂性和资源占用对于个人小型网站来说过于沉重。因此,本课题旨在开发一款轻量级、易用且快速的Java ...
1. **Java Web框架现状**:Java在Web开发领域拥有众多框架,如SSH(Struts、Spring、Hibernate)、iBatis、WebWork、Seam等。这些框架虽然在企业级应用中表现出色,但对于个人小型网站而言,它们过于庞大,学习曲线...
- **论文标题**:“Back-Stepping and Neural Network Control of a Mobile Robot for Curved Weld Seam Tracking” - **作者**:Gao Yanfeng, Zhang Hua, Ye Yanhui - **关键词**:后步进控制、神经网络、移动...
根据给定的信息,本文将对Java相关的架构图进行详细的解读与分析,主要涵盖Spring、Hibernate、Struts(包括Struts1和Struts2)、JSF、Seam、Grails、DWR、J2EE、Oracle等技术栈的核心概念及其架构特点。 ### 1. ...
作为一名J2EE程序员,你需要掌握以下关键领域的知识: 1. **Web开发框架**: - JSF(Facelets,Richfaces,Ajax4jsf,ICEFaces):提供组件化开发,易于构建用户界面。 - Struts2:基于MVC的框架,整合了许多其他...