码表配置

​ 码表主要是将各类业务的字段按照一定的标准和要求进行统一编码和对应,不仅可以保证开发的规范和有效,避免信息的重复带来的问题,还可以极大的提高平台的通用性。

1.1 码表配置核心文件

  • cfg/etc/schema/codetables.xsd————>码表属性定义文件
  • cfg/etc/codetables.xml————>码表字段映射文件

1.2 码表映射字段属性

<!-- 码表定义简单实例 -->
<?xml version="1.0" encoding="UTF-8"?>
<codetables xmlns="http://www.brilliance.com.cn/codetable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.brilliance.com.cn/codetable schema/codetable.xsd">
    <codetable id="SEX">
        <code id="M" value="男" />
        <code id="W" value="女" />
    </codetable>
</codetables>
字段名称 属性描述 是否必须
--codetables 定义整个码表
----codetable id="表名" sql="sql查询语句" 定义单个码表字段,使用sql属性则为动态码表,不使用则为静态码表
------code id="属性名" value="属性值" 定义码表内的静态属性值,动态码表不需要该属性

1.3 码表分类

​ 按照码表实际使用时的字典值获取方式,可以分为静态码表和动态码表

1.3.1 静态码表

​ 在静态码表中,通过code标签的value属性直接定义为固定的字符串等属性值

1.3.2 动态码表

​ 动态码表直接通过codetable标签中使用sql属性,利用查询语句select将数据库码表中的数据获取到,然后根据实际传入的value值找对应的值进行返回

1.4码表使用实例演示

  • 码表定义
<!-- 码表定义 -->
<?xml version="1.0" encoding="UTF-8"?>
<codetables xmlns="http://www.brilliance.com.cn/codetable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.brilliance.com.cn/codetable schema/codetable.xsd">
    <!-- 静态码表 -->
    <codetable id="way">
        <code id="0" value="按分计费" />
        <code id="1" value="按时计费" />
        <code id="2" value="按天计费" />
    </codetable>
    <codetable id="cycle1">
        <code id="0" value="10天" />
        <code id="1" value="20天" />
        <code id="2" value="30天" />
    </codetable>
    <!-- 动态码表 -->
    <codetable id="cur" sql="SELECT nam1,nam2 FROM tmpkey" />
</codetables>
  • 交易中使用码表
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.brilliance.com.cn/interface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.brilliance.com.cn/interface ../etc/schema/interface.xsd">
    <interface id="testtablecode" basePackage="com.brilliance.eibs.core.service.instance.impl" version="2.0">
        <transaction id="bean" version="2.0">
            <step id="1">
                <filter ref="publicFilter" type="in" encoding="gbk">
                    <!--静态码表-->
                    <field tag="a" value="0" codetable="way"/>
                    <log value="======${a}======"/>
                </filter>

                <!--建立和数据库的连接-->
                <connection ref="jdbcConnection"/>

                <!--动态码表-->
                <filter ref="sqlFilter" type="in">
                    <field tag="nam1" value="zhangsan" codetable="cur"/>
                    <log value="======${nam1}========"/>
                    <field etag="close"/>
                </filter>
            </step>
        </transaction>
    </interface>
</root>
  • 实例演示结果

    • 静态码表直接通过value=0获取到"按分计费"的结果

    • 动态码表通过传入nam1的属性zhangsan(默认查询字段首位为key),获取到nam2的属性为13

1665990858880

results matching ""

    No results matching ""