Seam CRUD应用程序构架

来源:互联网 发布:搜索引擎优化的优缺点 编辑:程序博客网 时间:2024/05/02 04:46

Seam CRUD应用程序框架本质上是提供预打包的数据访问对象(DAO

一:数据访问对象(DAO

Seam应用程序中,DAO是一个EJB3.0会话bean或者是一个提供引用可管理EntityManager对象的SeamPOJO组件。

在许多小型的数据库驱动程序中,CRUD数据库访问逻辑其实就是业务逻辑。

在大型企业级应用程序中,DAO模式的优势在于它把数据访问逻辑从业务逻辑中抽象出来,业务组件仅包含特定领域的“业务逻辑”而没有特定的数据访问API请求(例如没有引用EntityManager)。因此,业务组件更为便携和轻量化,这使得与基础架构之间的联结不再那么紧密。

二:SeamCRUD DAO即为POJO

一个EntityBeanDAO,即为它的Home类。如:

@Entity

@Table(name ="help_cat", schema ="public")

publicclassHelpCatimplements Serializable {

DAO即为:

@Name("helpCatHome")

publicclassHelpCatHomeextends EntityHome<HelpCat> {

   @RequestParameter

   LonghelpCatId;

 

CRUD应用程序主要使用HTTP GET请求参数为页面提取实体对象,DAO必须接收HTTP请求参数并查询数据库,再把提取的实体对象转换为页面能够识别的格式。

 

helpCatHome组件所在的页面接收到以GET方式传递过来的参数helpCatId时,helpCatHome组件就会调用Instance()方法实例化以helpCatId为主键的实例。并把该实例的相关属性绑定到页面中。如果没有查找到以helpCatId为主键的实例,则会新创建一个新的实体对象。

三:查询

@Name("helpCatList")

@Scope(ScopeType.PAGE)

publicclassHelpCatListextendsEntityQuery<HelpCat> {

 

对于实体的查询是在Query类中。

动态的查询把用户的输入值(搜索标准)与查询约束条件中的占位符绑定

通过max-results属性指定每个页面上要显示的结果对象的数量,然后通过firstResult这个HTTP请求参数,开发者可以控制在JSF页面上的显示结果集当中的哪一部分。

max-results=20,如果指定firstResult=20,则显示编号为20-39的查询对象