ofbiz数据类型映射

不同的数据库拥有不同的数据类型,就想不通的语言拥有不同的词汇表。但就像不通语言可以等同部分,不通数据库通常有他们之间的相同数据类型。OFBiz通过定义标准的”OFBiz数据类型“——OFBiz来说的类型,来获得数据库独立性(连接不同数据库转换的能力)。这些OFBiz数据类型的每一种,OFBiz都有一个映射到等同数据库指定类型。这样,OFBiz代码只需处理一个单一的数据类型集合——OFBiz数据类型。OFBiz 翻译它自己的数据类型为指定数据库的类型。

数据类型的映射在${component:entity}\fieldtype文件夹中。支持的数据库有:DerbyPostgreSQL, MySQL, MSSQL, Oracle, MaxDB以及许多其它类型。目录为每个OFBiz支持的数据库包含一个映射文件 fieldtype<database-name>.xml(例如 fieldtypederby.xml)。每个映射文件通过<feld-type>元素加载到 ${component:entity}\config

下面是mysql数据库和ofbiz数据类型的映射

<fieldtypemodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/fieldtypemodel.xsd">
  <!-- ===================== field-type-def ==================== -->
    <!-- General Types -->
    <field-type-def type="blob" sql-type="LONGBLOB" java-type="java.sql.Blob"/>
    <field-type-def type="byte-array" sql-type="LONGBLOB" java-type="byte[]"/>
    <field-type-def type="object" sql-type="LONGBLOB" java-type="Object"/>

    <field-type-def type="date-time" sql-type="DATETIME" java-type="java.sql.Timestamp"/>
    <field-type-def type="date" sql-type="DATE" java-type="java.sql.Date"/>
    <field-type-def type="time" sql-type="TIME" java-type="java.sql.Time"/>

    <field-type-def type="currency-amount" sql-type="DECIMAL(18,2)" java-type="java.math.BigDecimal"/>
    <field-type-def type="currency-precise" sql-type="DECIMAL(18,3)" java-type="java.math.BigDecimal"/>
    <field-type-def type="fixed-point" sql-type="DECIMAL(18,6)" java-type="java.math.BigDecimal"/>
    <field-type-def type="floating-point" sql-type="DOUBLE" java-type="Double"/>
    <field-type-def type="numeric" sql-type="DECIMAL(20,0)" java-type="Long"/>

    <field-type-def type="id" sql-type="VARCHAR(20)" java-type="String"/>
    <field-type-def type="id-long" sql-type="VARCHAR(60)" java-type="String"/>
    <field-type-def type="id-vlong" sql-type="VARCHAR(250)" java-type="String"/>

    <field-type-def type="indicator" sql-type="CHAR(1)" java-type="String"/>
    <field-type-def type="very-short" sql-type="VARCHAR(10)" java-type="String"/>
    <field-type-def type="short-varchar" sql-type="VARCHAR(60)" java-type="String"/>
    <field-type-def type="long-varchar" sql-type="VARCHAR(255)" java-type="String"/>
    <field-type-def type="very-long" sql-type="LONGTEXT" java-type="String"/>

    <field-type-def type="comment" sql-type="VARCHAR(255)" java-type="String"/>
    <field-type-def type="description" sql-type="VARCHAR(255)" java-type="String"/>
    <field-type-def type="name" sql-type="VARCHAR(100)" java-type="String"/>
    <field-type-def type="value" sql-type="VARCHAR(255)" java-type="String"/>

    <!-- Specialized Types -->
    <field-type-def type="credit-card-number" sql-type="VARCHAR(255)" java-type="String"/>
    <field-type-def type="credit-card-date" sql-type="VARCHAR(7)" java-type="String"/>
    <field-type-def type="email" sql-type="VARCHAR(320)" java-type="String"/>
    <field-type-def type="url" sql-type="VARCHAR(2000)" java-type="String"/>
    <field-type-def type="id-ne" sql-type="VARCHAR(20)" java-type="String"/>
    <field-type-def type="id-long-ne" sql-type="VARCHAR(60)" java-type="String"/>
    <field-type-def type="id-vlong-ne" sql-type="VARCHAR(250)" java-type="String"/>
    <field-type-def type="tel-number" sql-type="VARCHAR(60)" java-type="String"/>
</fieldtypemodel>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值