ofbiz连接mysql数据库的方法二

时间:2022-01-13 01:07:29

Ofbiz自带的数据库是Derby,Derby是测试系统的数据库,不适合开发用。

1. 找到文件并打开 \framework\entity\config\entityengine.xml,

2. 把所有的delagator 的mysql的注释去掉,然后把相应的derby的设置注释掉。
<!--<group-map group-name="org.ofbiz" datasource-name="localderby"/>
       <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
       <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/> -->
<group-map group-name="org.ofbiz" datasource-name="localmysql"/>
       <group-map group-name="org.ofbiz.olap" datasource-name="localmysqlolap"/>
       <group-map group-name="org.ofbiz.tenant" datasource-name="localmysqltenant"/>


3. 修改mysql数据库源信息

   <datasource name="localmysql"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="utf8"
           collate="utf8_general_ci">
       <read-data reader-name="tenant"/>
       <read-data reader-name="seed"/>
       <read-data reader-name="seed-initial"/>
       <read-data reader-name="demo"/>
       <read-data reader-name="ext"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://localhost:3306/ofbiz autoReconnect=true"
               jdbc-username="root"
               jdbc-password=""
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/$amp;>amp;$lt;!-- Please note that at least one person has experienced a problem with this value with MySQL
               and had to set it to -1 in order to avoid this issue.
               For more look at ;
       <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
   </datasource>
   <datasource name="localmysqlolap"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="utf8"  
collate="utf8_general_ci">
       <read-data reader-name="tenant"/>
       <read-data reader-name="seed"/>
       <read-data reader-name="seed-initial"/>
       <read-data reader-name="demo"/>
       <read-data reader-name="ext"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://localhost:3306/ofbizolap autoReconnect=true"
               jdbc-username="root"
               jdbc-password=""
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/$amp;>amp;$lt;!-- Please note that at least one person has experienced a problem with this value with MySQL
               and had to set it to -1 in order to avoid this issue.
               For more look at ;
       <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
   </datasource>
   <datasource name="localmysqltenant"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="utf8"  
collate="utf8_general_ci">
       <read-data reader-name="tenant"/>
       <read-data reader-name="seed"/>
       <read-data reader-name="seed-initial"/>
       <read-data reader-name="demo"/>
       <read-data reader-name="ext"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://localhost:3306/ofbiztenant autoReconnect=true"
               jdbc-username="root"
               jdbc-password=""
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/$amp;>amp;$lt;!-- Please note that at least one person has experienced a problem with this value with MySQL
               and had to set it to -1 in order to avoid this issue.
               For more look at ;
       <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
   </datasource>
   <datasource name="odbcmysql"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="utf8"  
collate="utf8_general_ci">
       <read-data reader-name="tenant"/>
       <read-data reader-name="seed"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://localhost:3306/ofbiz_odbc autoReconnect=true"
               jdbc-username="root"
               jdbc-password=""
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/>
       <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
   </datasource>
</entity-config>

4. 把mysql的驱动包放入 framework\entity\lib\jdbc 下