1.介绍(Introduction):
OFBiz is an Apache Software Foundation top level project.
首先先介绍一下 广义 Apache Ofbiz,Apache OFBiz全称是The ApacheOpen For Business Project。Open For Business(OFBiz)是一套基于通用架构的企业应用程序,使用通用数据,逻辑和流程组件。 应用程序的松散耦合特性使这些组件易于理解,扩展和定制。
提供了创建基于最新的J2EE/XML规范和技术标准,构建大中型企业级、快平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架,类似 ERP,CRM,ORDER,电商..... 很多模块
OFBiz几乎实现了所有的J2EE核心设计模式,各个模块之间的耦合比较松散,用户能够比较容易的根据自己的需要进行拆卸,非常灵活。下面介绍一下它的目录结构以及文件说明。
2.下载(DownLoad):
https://ofbiz.apache.org/developers.html
搜索ofbiz 进入官方地址· 捣鼓那个网下载 ofbiz16.11.05的 (见图)
https://www.apache.org/dyn/closer.lua/ofbiz/apache-ofbiz-16.11.05.zip
你可以 链接到网址:https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guide
然后再去对比其他文档看 之前文档都是很早之前的 文档了 新的版本都有所不同
(备注 :我这里用的 是 ofbiz16.11.05 支持jdk1.8)
好了,看到这么多的(版本)不同时间的,版本的不同点 你都可以从上面链接里面Get到 (简直就是,哪里不懂点哪里 ... ... )
3.安装配置环境 (Installation configuration environment):
上面备注了 我下载的是 Apachea OFbiz16版本的 支持jdk1.8(老版本以上 ,需另外更改配置)
下载了之后,简单操作,解压,该项目名称(记得要改文件名称,不然了解一下不改名为啥不行 也好 (* ̄︶ ̄) -!)
解压好的项目层级目录,这里介绍一下 这些包都是干什么用的
运行Apache ofbiz
-
下载,解压,配置到本地,进入安装目录(即解压目录)导入到idea开发工具中
-
解压目录下:\framework\entity\config\entityengine.xml 中更改为本地mysql配置
在本地数据库创建 ofbiz ,ofbizolap, ofbiztenant 三个数据库
下面我把我配置的本地mysql 代码 贴上来了 直接搜索 localmysql 可以发现 我改了三处 localmysql(ofbiz),localmysqlolap (ofbizolap),localmysqltenant (ofbiztentant) 。记得啊再往下面 还要配置自己的本地数据库 root、password 忘记了的话本地数据库的新建三个库里不会生成数据表(里面主体表:ofbiz)
默认先在本地创建三个数据库 (配置utf-8)
然后这样还是不行的, 还要修改一处 mysql的驱动包 要添加到依赖中去也就是 解压文件下的 build.gradle文件下 配置 依赖包
// MySQL Connector l
compile 'mysql:mysql-connector-java:5.1.41'
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
- This file configures the Entity Engine JDBC (or other DataSource) and JTA
access. For a detailed description see the core/docs/entityconfig.html file.
-->
<entity-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entity-config.xsd">
<resource-loader name="fieldfile" class="org.apache.ofbiz.base.config.FileLoader"
prepend-env="ofbiz.home" prefix="/framework/entity/fieldtype/"/>
<!-- the transaction factory class to use, one is needed for each way of getting JTA interfaces -->
<!-- Use this one for Geronimo -->
<transaction-factory class="org.apache.ofbiz.entity.transaction.GeronimoTransactionFactory"/>
<!-- Use this one for getting the JTA objects from JNDI -->
<!-- NOTE: to use the JndiFactory you must specify the necessary JNDI properties
<transaction-factory class="org.apache.ofbiz.entity.transaction.JNDITransactionFactory">
<user-transaction-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
<transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
</transaction-factory>
-->
<!--
It is common to use UserTransaction for the TransactionManager, but if that doesn't work, try this: <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/TransactionManager"/>
Common UserTransaction locations:
java:comp/UserTransaction (most servers: Resin, Orion, OC4J, etc)
UserTransaction (RexIP)
JBoss uses two different objects for the UserTransaction and TransactionManager interfaces;
they are located in JNDI at: "java:comp/UserTransaction" and "java:/TransactionManager" respectively
-->
<!-- the connection factory class to use, one is needed for obtaining connections/pools for defined resources -->
<connection-factory class="org.apache.ofbiz.entity.connection.DBCPConnectionFactory"/>
<debug-xa-resources value="false" /> <!-- see https://issues.apache.org/jira/browse/OFBIZ-4282 for more -->
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
<group-map group-name="org.apache.ofbiz" datasource-name="localmysql"/>
<group-map group-name="org.apache.ofbiz.olap" datasource-name="localmysqlolap"/>
<group-map group-name="org.apache.ofbiz.tenant" datasource-name="localmysqltenant"/>
</delegator>
<delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
<group-map group-name="org.apache.ofbiz" datasource-name="localderby"/>
<group-map group-name="org.apache.ofbiz.olap" datasource-name="localderbyolap"/>
<group-map group-name="org.apache.ofbiz.tenant" datasource-name="localderbytenant"/>
</delegator>
<!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "gradlew loadDefault" before running "gradlew testIntegration" -->
<delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
<group-map group-name="org.apache.ofbiz" datasource-name="localderby"/>
<group-map group-name="org.apache.ofbiz.olap" datasource-name="localderbyolap"/>
<group-map group-name="org.apache.ofbiz.tenant" datasource-name="localderbytenant"/>
</delegator>
<!-- need to at least define a name for each component to use -->
<entity-model-reader name="main"/>
<!-- need to at least define a name for each component to use -->
<entity-group-reader name="main"/>
<!-- need to at least define a name for each component to use -->
<entity-eca-reader name="main"/>
<!-- need to at least define a name for each component to use -->
<!-- defining:
tenant = OFBiz and External Tenant Data
seed = OFBiz and External Seed Data - to be maintained along with source and updated whenever a system deployment is updated
seed-initial = OFBiz and External Seed Data - to be maintained along with source like other seed data, but only loaded initially and not updated when a system is updated except manually reviewing each line
demo = OFBiz Only Demo Data
ext = External General Data (custom)
ext-test = External Test Data (custom)
ext-demo = External Demo Data (custom)
-->
<entity-data-reader name="tenant"/>
<entity-data-reader name="seed"/>
<entity-data-reader name="seed-initial"/>
<entity-data-reader name="demo"/>
<entity-data-reader name="ext"/>
<entity-data-reader name="ext-test"/>
<entity-data-reader name="ext-demo"/>
<field-type name="hsql" loader="fieldfile" location="fieldtypehsql.xml"/>
<field-type name="derby" loader="fieldfile" location="fieldtypederby.xml"/>
<field-type name="daffodil" loader="fieldfile" location="fieldtypedaffodil.xml"/>
<field-type name="axion" loader="fieldfile" location="fieldtypeaxion.xml"/>
<field-type name="mysql" loader="fieldfile" location="fieldtypemysql.xml"/>
<field-type name="postgres" loader="fieldfile" location="fieldtypepostgres.xml"/>
<field-type name="oracle" loader="fieldfile" location="fieldtypeoracle.xml"/>
<field-type name="sapdb" loader="fieldfile" location="fieldtypesapdb.xml"/>
<field-type name="sybase" loader="fieldfile" location="fieldtypesybase.xml"/>
<field-type name="firebird" loader="fieldfile" location="fieldtypefirebird.xml"/>
<field-type name="mssql" loader="fieldfile" location="fieldtypemssql.xml"/>
<field-type name="advantage" loader="fieldfile" location="fieldtypeadvantage.xml"/>
<!--
For DAO/JDBC Helper: Tries:
1. JNDI Datasource IF jdbc.jndi.name, context.provider, etc are specified
2. Embedded (JOTM) if available (uses jdbc.driver, jdbc.uri, jdbc.username, jdbc.password, isolation.level)
3. Direct to manually laoded JDBC driver (uses jdbc.driver, jdbc.uri, jdbc.username, jdbc.password)
Transaction Isolation Levels - (<helperName>.isolation.level) can be as follows:
* None
* ReadCommitted (Recommended)
* ReadUncommitted
* RepeatableRead
* Serializable (NOT Recommended)
* Not set uses database default
-->
<datasource name="localhsql"
helper-class="org.apache.ofbiz.entity.datasource.GenericHelperDAO"
field-type-name="hsql"
check-on-start="true"
add-missing-on-start="true"
check-indices-on-start="true"
use-foreign-keys="true"
use-foreign-key-indices="true"
use-fk-initially-deferred="false"
join-style="ansi-no-parenthesis"
alias-view-columns="true">
<read-data reader-name="tenant"/>
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial&#