普元EOS-低开多数据源时,数据实体如何决定选择哪个数据源

1 前言

普元EOS开发的时候,通过反向工程,基于数据表可以快速生成数据实体。

基于数据实体可以快速生成页面。

这个过程体现了EOS的高效性,开发效率非常高。

当有多个数据源的时候,EOS的低开页面调用数据实体的时候,怎么知道应该选择哪个数据源呢

2 EOS多数据源配置

EOS项目配置多数据源非常简单,直接在 user-config.xml文件中创建多个数据源即可。具体的操作方式,普元EOS官方help提供了明确的说明《数据源参数配置》。

只要在 user-config.xml文件的数据源部分,配置多个 DataSource 的 module 就可以了。

3 EOS的数据实体的概念

EOS的数据实体,类似 MyBatis 或 Hibernate的数据实体。

MyBatis的数据实体是一个 JavaBean ,与数据表结构形成对应关系,方便我们进行数据表操作。

EOS的数据实体也是这样的,但更强大一些,或者也可以说画蛇添足(这要看使用者是否习惯)。EOS的数据实体是可视化的。

这个数据实体是直接从可视化的数据表拖拽出来的。

看上图,左侧是数据库,显示有若干数据表,拖拽bk_type数据表生成了 BkType这个数据实体对象

这就容易给开发者一个误会,似乎EOS的数据实体就是与具体数据源的数据表对应的,操作数据实体就相当于操作数据表里面的数据了。

但这是错误的。

就好像我们使用MyBatis数据实体一样,那是一个对应关系,只是结构上有一致性,并非在数据连接上保持了一致。

开发者完全可以从数据源A生成数据实体,然后操作数据源B里面的数据,只要数据源A和数据源B都有与该数据实体对应的数据表即可。

4 低开时候选择数据源

EOS低开的时候,可以直接从数据实体生成页面,这个不多说了,简单看一下下图。

在低开页面上,选择页面节点右键,点击新建页面。

在这个页面,选择该页面对应的页面实体,选择BkType这个数据实体。

该项目创建了两个数据源,数据源配置如下:

<group name="default">
            <configValue key="Database-Type">MySql</configValue>
            <configValue key="Jdbc-Type"/>
            <configValue key="C3p0-DriverClass">com.mysql.cj.jdbc.Driver</configValue>
            <configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/eos831express?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</configValue>
            <configValue key="C3p0-UserName">root</configValue>
            <configValue key="C3p0-Password">111111</configValue>
             。。。。。。
        </group>
        
        <group name="demo1">
            <configValue key="Database-Type">MySql</configValue>
            <configValue key="Jdbc-Type"/>
            <configValue key="C3p0-DriverClass">com.mysql.cj.jdbc.Driver</configValue>
            <configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/eosdemo?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</configValue>
            <configValue key="C3p0-UserName">root</configValue>
            <configValue key="C3p0-Password">111111</configValue>
            <configValue key="C3p0-PoolSize">10</configValue>
            。。。。。。
        </group>

可以看到,有两个数据源,第一个数据源是默认的 default数据源,对应的数据库是 eos831express ,第二个数据源是 demo1 ,对应的数据库是 eosdemo

BkType数据实体对应的数据表 bk_type在 eosdemo数据库中。

这样,新创建的页面在进行增删改查操作的时候就会报错,说找不到 eos832express.bk_type 数据表,因为默认是操作default数据源。

5 解决办法:在低开应用中维护数据源

在Afcenter 中使用管理员登录,一般是admin账号,主要是要进行低开,需要一个有低开权限的账号。

登录后在主菜单中点击开发中心

开发中心页面点击 配置管理 - 实体数据源配置 - 添加配置

在实体数据源配置添加的页面中,选择数据源demo1 ,填写要包含的实体名称。

只要在user-config.xml中配置的数据源,这里就可以选择。

包含的实体名称,按照规则填写进去即可。

这里将 BkType 实体的全名填入,意思就是针对该数据实体的操作,都是对demo1数据源下的数据表进行操作。

6 结尾

问题解决了,文章结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小崔爱读书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值