在OFBiz中对model的定义配置文件一般放在组件下的entitydef目录下。在该配置文件中通过<entity>节点来配置一个实体并与数据库中的表相对应。entity节点中的entity-name属性用来定义实体的名称,如果实体名称中用的是驼峰法命名,则在数据库中默认映射的时候会在中间自动添加"_",否则需要显式的指定其title属性。而在entity节点下面定义字段的时候如果涉及到驼峰命名的话也会出现类似的情况,可以通过指定其col-name属性来避免ofbiz自动为其添加"_"。
为了更好的理解<field>节点中type的值,即Java与数据库类型的对应关系,可以查看其type的定义文件,具体在%ofbiz-home%/framework/entity/fieldtype/fieldtypemysql.xml(此处我以mysql数据库为例),其中field-type-def节点下定义了每一种常见的类型及其对应的mysql数据库跟java的类型。之后再返回回来看model定义的配置文件就容易多了。
type属性的值为之前查看的已经定义好的类型,在真正执行的时候会对应到相应的java类型和数据库类型;
name属性的值即为字段的名称;
prim-key节点用来声明主键,注意该节点的field属性值必须在之前定义过;
relation节点是用来定义关系的,在该节点中的type属性一般有三种类型"one","many","one-nofk"
one、one-nofk的使用条件是被关系实体的rel-field-name为主键;
many的使用条件是被关系实体的rel-field-name为非主键;
而one 与 one-nofk 的区别在于one会在数据库表结构中创建外键约束,而one-nofk 则不会;
fk-name属性用来定义外键的名称;
rel-entity-name用来定义被引用的实体的名称;
title属性用来给该关系起别名;
relation节点下面的key-map节点来定义关系实体的字段信息,field-name属性用来定义关系实体的外键字段,rel-field-name用来定义被关系实体的字段,如果关系实体的字段跟被关系实体的字段相同的话rel-field-name属性可以省略。
webtools中的功能
1.通过“浏览组件”选项可以看到已加载的组件信息,一目了然的看到每个组件的名称、物理路径、访问路径以及该组件下所包含的应用名称及其物理路径。
2.通过“标签管理”选项可以看到所有组件中在config目录下的标签配置文件都被加载进去,点击查找之后可以看到该标签配置文件中的所有标签名及其各种语言对应的值。
3.通过“实体数据维护”选项可以看到已加载到的所有的实体,通过右边的新建,关系,找,全部查看到所有有关实体的详细信息甚至每个域所对应的java类型和数据库类型。
4.通过“实体引用-INTERACTIVE”选项可以看到类似于JAVA API似得界面,左侧显示所有的实体包,右侧则是实体引用图表,可以看到全部实体信息。很详细的列出了每个实体的名称,映射到数据库里面的名称,每个域的Java名称,数据库名,域类型,Java类型,SQL类型。最后还有该表所包含的索引名称。
5.通过“实体引用图表”某个实体旁边的“人工程序信息”选择进入会看到该实体被定义的物理路径,实体所包含的域,关系,更加可以方便的看到用到该实体的所有服务,Forms和Screens。
6.通过“实体SQL处理程序”,可以在指定组中写固定的sql命令(即SQL语句),点击提交按钮就可以实现SQL语句的执行,类似于数据库的工作台一样。
7.通过“性能测试”选项,可以自行去调用增删改查以及根据缓存查找,常用的new HashMap,UtilMisc.toMap,UtilCache.get(String),UtilCache.get(GenericPK),UtilCache.put(GenericPK)等操作,最后把统计结果以列表的方式显示出来。
8.通过“服务引用”选项进入服务列表,因为服务比较多,可以根据服务名的首字母来进行筛选服务或者根据组件名来筛选。通过点击服务名来选择查看该项服务的具体信息。
9.通过“自启动以来的服务器统计”选项进入自启动以来的服务器统计页面,可以看到请求统计,事件统计,浏览统计等详细信息。
相关推荐
实体定义允许开发者定义复杂的实体关系,如一对一、一对多、多对多等,这极大地简化了数据操作。 ### 三、实体引擎的主要功能 1. **数据访问**:通过实体引擎,可以方便地进行CRUD(创建、读取、更新、删除)操作...
在`ofbiz-component.xml`中添加对新实体的引用,确保在构建和加载数据时能识别这个实体。 构建OFBiz有两种方法:通过命令行运行`ant load-demo`或在Eclipse中使用Ant构建工具。成功构建后,检查日志文件确认部门表...
OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。...
建议首先阅读这些文档,以便对Ofbiz有一个全面的认识。在阅读过程中,注意记录关键点,尤其是涉及到的命令行操作、XML配置和代码示例。 在学习Ofbiz的过程中,你可能会遇到的问题可能包括:理解和配置Ofbiz的复杂...
通过XML文件,开发者可以定义实体的属性、关系以及索引,使得数据结构设计更加清晰和规范。 三、服务层(Service Layer) 在OFBiz中,服务层是业务逻辑的承载者,它封装了对数据结构的操作。服务层的设计采用服务...
* webtools:Ofbiz 的 Web 工具代码 使用 Eclipse 打开 Ofbiz 的 Ant 命令 我们可以使用 Eclipse 打开 Ofbiz 的 Ant 命令,以便编译和运行 Ofbiz。我们可以在 Eclipse 的“Window”菜单中选择“Show View” > ...
在Ofbiz中,数据库模型扮演着至关重要的角色,它是系统数据结构的基础,定义了所有业务实体及其相互关系。 数据库模型是Ofbiz的核心组成部分,它描述了系统中的各种实体(如产品、订单、客户等)以及它们之间的关系...
此外,书中可能还会介绍OFBIZ的Web界面开发,包括使用Freemarker模板语言创建动态页面,以及如何使用AJAX技术增强用户体验。对于扩展OFBIZ,你将学习到如何创建新的模块,编写定制的服务,以及如何部署和调试你的...
你可以继续添加实体定义(entity-engine.xml)、服务定义(service.xml)、屏幕布局(screen.xml)以及工作流定义(workflow.xml)等,来构建更复杂的业务逻辑。 在实践中,Ofbiz开发者还需要了解如何使用Ant或...
3. 定义实体和系统标签 OFBiz使用XML文件来定义UI组件,如页面布局、标签等。在对应的`component`目录下,创建`webapp/myfirstdemo/WEB-INF/ftl`目录,并定义FTL(FreeMarker)模板文件,用以展示和操作实体数据。...
Ofbiz的Web框架.
接着,你将学习Ofbiz的实体模型设计,理解如何使用Entity Engine创建和管理数据库表,以及如何编写XML文件来定义实体关系。同时,书里还会介绍如何通过Entity Manager进行数据操作,包括增删改查等基本操作。 然后...
在本文中,我们将深入探讨如何搭建OFBiz 16.11.05的运行及开发环境,并讨论一些关键的OFBiz功能,如百度地图集成、国际化处理、用户逻辑、PDF导出、服务调用、内容管理、MVC框架、服务引擎、多租户以及权限系统。...
- **EntityECA**:用于定义实体事件的条件与动作,在 **eecas*.xml** 文件中定义。 2. **ServiceDefinition(服务定义)** - **services*.xml**:定义服务接口,包括输入参数、输出结果等。 - **ServiceECA**:...
- **实体模型文件 (`entitymodel_xxx.xml`)**:这是用来定义实体模型的主要文件,如 `entitymodel_study.xml`,位于 `C:\ofbiz\ofbiz\commonapp\entitydef` 目录下。 - **组件配置文件 (`ofbiz-component.xml`)**...
通过上述章节的学习,读者不仅能够掌握 OFBiz 的基本安装和配置过程,还能够了解如何根据业务需求对 OFBiz 进行定制化开发。此外,还学习了如何管理数据、优化用户界面以及实现自动化流程等功能。这些知识对于构建...
《OFBiz API 开发文档详解》 在信息技术领域,OFBiz(Open For ...总结,OFBiz API开发文档是开发者掌握OFBiz框架的必备资料,通过深入学习和实践,开发者可以充分利用OFBiz的强大功能,实现高效的企业级应用开发。
1. **实体管理**:OFBiz使用实体引擎来处理数据模型,通过实体定义文件(.entity.xml)来创建和操作数据库表。 2. **服务开发**:服务引擎是OFBiz处理业务逻辑的核心,服务定义文件(.servicedef.xml)定义了服务的...