`
jiasudu1649
  • 浏览: 724596 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ofbiz创建数据库实体代码详解析

阅读更多
  • package org.ofbiz.hello3;

     

    import java.util.HashMap;

    import java.util.Map;

     

    import org.ofbiz.base.util.Debug;        // uses Log4J

    import org.ofbiz.base.util.UtilMisc;     // helpful utility for working with Maps, Lists, etc.

    import org.ofbiz.entity.GenericDelegator;

    import org.ofbiz.entity.GenericEntityException;

    import org.ofbiz.entity.GenericValue;

    import org.ofbiz.service.DispatchContext;

    import org.ofbiz.service.ServiceUtil;

     

    public class Hello3Services {

       

    public static final String module = Hello3Services.class.getName();

    // 用于测试。

      

    public static Map createHelloPerson(DispatchContext dctx, Map context) {

    //JAVA服务写成一种标准的格式:一个公共类里有一个公共静态方法,该方法有两个参数,//一个DispatchContext用于取得对象(delegators, dispatchers, locale, and //security),一个名叫context的影射Map包含了你的输入参数并返回一个结果影射。

     

           GenericDelegator delegator = dctx.getDelegator(); 

    //步骤一、获取delegator

    // 用DispatchContext类的getDelegator()方法取得和该dispatch/context想关联的//GenericDelegator对象,即delegator. GenericDelegator是用于访问数据库的类,想//操作数据库必须先取得该对象。      

           

            try {

                String helloPersonId = delegator.getNextSeqId("HelloPerson");

    //步骤二、用delegator调用方法取得序列号

    // GenericDelegator 类的getNextSeqId 方法用于从给定的序列中取得下一个有保证的//唯一的序列号;如果该序列不存在,该方法将创建它。方法原型为:

    //String getNextSeqId(java.lang.String seqName)

     

                Debug.logInfo("helloPersonId = " + helloPersonId, module);

    // 输出到控制台或日至,用于调试

     

                GenericValue helloPerson = delegator.makeValue("HelloPerson",

                        UtilMisc.toMap("helloPersonId", helloPersonId));

    //步骤三、调用delegator的makeValue方法创建GenericValue对象

    // GenericDelegator 类的makeValue方法用于创建GenericValue对象,该对象对应数据//库中一个具体实体,该方法的第一个参数是String型的实体名,第二个参数是一个映射。//方法原型为: 

    //GenericValue makeValue (java.lang.String entityName, java.util.Map fields)

     

     

                helloPerson.setNonPKFields(context);

    //步骤四、将输入参数中的非主码参数向GenericValue对象赋值

    // GenericValue对象helloPerson调用GenericValue类的setNonPKFields方法将输入的//非主码域值传递给自己。该方法的原型为:

    //void setNonPKFields(java.util.Map fields)

    //其实该方法是GenericValue类继承GenericEntity类的方法得来的。

     

                delegator.create(helloPerson);

    //步骤五、调用delegator的create方法将GenericValue对象写入数据库

    // 调用GenericDelegator类的create()方法根据GenericValue 的格式创建实体,并将

    //实体写入数据源。该方法的原型是:GenericValue create(GenericValue value)

     

                

                Map result = ServiceUtil.returnSuccess();

    // 由ServiceUtil类的returnSuccess()方法返回一个Map对象

    //方法原型是:

    //static java.util.Map returnSuccess(java.lang.String successMessage)

     

                result.put("helloPersonId", helloPersonId);

    // 在映射中关联指定对象的值到指定对象的码,即将输出参数放到映射中返回用户

    //方法原型为:Object put(Object key, Object value)

     

     

                return result;

    // return Map

            } catch (GenericEntityException ex) { // required if you use delegator in Java

                return ServiceUtil.returnError(ex.getMessage());

            }

        }

    }

     

    小结:

    步骤一、获取delegator

    步骤二、用delegator调用方法取得序列号

    步骤三、调用delegator的makeValue方法创建GenericValue对象

    步骤四、将输入参数中的非主码参数向GenericValue对象赋值

    步骤五、调用delegator的create方法将GenericValue对象写入数据库

    最后,通过MAP返回。


http://blog.sina.com.cn/s/blog_4a4820f9_0008pi.html
分享到:
评论

相关推荐

    ofbiz入门实例(jiasudu制作)

    4. **业务实体(Entity)管理**:学习Ofbiz的实体引擎,如何定义数据模型,创建和操作数据库表。 5. **服务(Service)开发**:理解Ofbiz的服务组件,如何编写和调用服务,实现业务逻辑。 6. **Web界面(GUI)设计...

    ofbiz 10.04 数据模型,ER图,基于mysql制作

    2. "ofbiz-pdm.pdm":这可能是PowerDesigner创建的数据模型文件,PowerDesigner是一款强大的数据库设计工具,可以用来创建、维护和可视化数据模型。 3. "ofbiz10.04Workspace.sws":这可能是一个工作空间文件,可能...

    ofbiz中文技术文档

    5. **数据库模型**:Ofbiz基于实体引擎进行数据管理,文档可能会列出主要的实体关系图,帮助读者理解数据结构。 6. **国际化与本地化**:Ofbiz支持多语言环境,文档可能会讲解如何配置和实现中文环境。 7. **案例...

    ofbiz综合文档

    在OFBIZ中,实体引擎负责处理数据库操作,如查询、更新等。它通过配置文件`entityengine.xml`定义了一套规则,用于指导框架如何执行数据库操作。此配置文件不仅定义了实体引擎的行为,还包含了各种示例,帮助开发者...

    ofbiz架构图

    View Handler解析请求,创建Screen Widget Context,用于在视图中传递数据和控制流。 2. **Service Engine**:服务引擎是OFBiz的核心,它负责调用业务逻辑,执行服务组件。服务组件可以是Java方法、EJB、Web服务等...

    OFBIZ2.0 入门手册,适合刚学习的朋友们

    OFBIZ的核心组件是Entity Engine,它提供了数据库表的创建、对象映射以及对象查询等功能,使得开发者可以专注于业务逻辑,而无需过多关注底层数据库操作。通过XML文件定义数据库结构,OFBIZ能自动生成对应的表并动态...

    ofbiz框架简单讲解

    ### OFBiz框架简介及其配置文件解析 #### 一、OFBiz框架概述 OFBiz(Open For Business)是一款开源的企业级电子商务框架,它提供了一系列用于构建和管理电子商务网站的基础架构和服务。OFBiz支持多种业务功能,如...

    ofbiz入门文档

    #### 四、Ofbiz框架中example代码解析 **4.1 主窗口菜单代码的解释** - 解析主窗口菜单的配置和实现。 **4.2 实体的查询——查询example实体** - 查询指定实体的示例代码分析。 **4.3 实体的新增——新增...

    OFBiz数据模型

    本篇文档将详细解析“OFBiz数据模型”中的关键部分,尤其是预算(Budget)相关的实体定义及其属性,帮助读者更好地理解OFBiz框架的数据存储机制。 #### 二、Budget实体定义 ##### 1. 实体概述 在OFBiz框架中,`...

    ofbiz重要的xml文件详解

    以下是一些OFBiz中关键的XML配置文件的详细解析: 1. **entityengine.xml**: 这个文件负责配置数据源,包括数据库连接池、事务管理和字段类型的定义。`<delegator>`元素定义了不同的数据操作代理,每个代理可以...

    ofbiz--A Beginners Development Guide--Part 2

    这可以帮助开发者通过动手实践来更好地理解和掌握Ofbiz的工作原理,例如创建新的组件、编写服务、设置实体模型等。 7. **开发工具** 当涉及到Ofbiz开发时,有一些常用的工具可以帮助提高效率,如Ofbiz的Maven插件...

    ofbiz程序结构.txt

    ### OFBiz程序结构解析 #### 一、概述 OFBiz(Open For Business)是一款开源的企业级电子商务框架,它提供了一套完整的解决方案来构建和管理复杂的业务应用。该框架基于Java语言开发,支持多种数据库,并提供了...

    ofbiz资料综合

    - **数据库管理**:Ofbiz使用灵活的数据模型设计,支持复杂的业务实体和关系。 - **Web界面**:提供基于Web的工作流和事务处理,支持自定义和集成。 - **多语言和多货币支持**:适应全球化业务需求。 - **集成能力**...

    ofbiz 开发顺序图

    ### ofbiz开发顺序图解析 #### 一、概述 在探讨ofbiz开发顺序图之前,我们首先需要了解ofbiz的基本概念及其在企业级应用中的重要性。Apache OFBiz(Open For Business)是一款开源的企业级应用框架,用于构建复杂...

    基于Ofbiz的Web框架.pdf

    Ofbiz的Web请求流程通常涉及以下几个步骤:接收请求、解析请求、调用服务、更新模型、渲染视图并返回响应。这一过程确保了请求处理的高效性和灵活性。 总的来说,基于Ofbiz的Web框架提供了一种强大且全面的方式来...

    OFBIZ功能大全.docx

    以下将详细解析OFBiz的主要功能和特性: 1. **通用功能与开源优势**: - **无版权费用**:OFBiz遵循Apache 2.0开源协议,用户可以自由地使用、修改和分发代码,无需支付版权费用。 - **活跃社区支持**:拥有一个...

    ofibz目录结构

    【OFBIz 目录结构】的解析与详解 OFBIz,现在已经更名为OpenTaps项目,是一个专注于大规模企业级应用程序开发的开源平台。它的核心目标是构建一个全面的、企业级的电子商务解决方案,而非仅仅关注单一的工作流或...

Global site tag (gtag.js) - Google Analytics