读取数据库音讯创设视图字段的备考消息,方便程序代码生成

 在重重情景下,大家付出都急需有1个急忙的代码生成工具用来增长开发功能,代码生成工具很多音信都以读取数据库的表、视图等元数据举办对象表信息的两全,有了这么些新闻,大家就足以在经常的实体类代码里面添加属性字段的中文注释,或然在Winform或然Web界面包车型大巴长足转移的时候,能够在查询框可能界面编辑的时候,充当标签提示等处理消息。不过,一般景色下视图的备注新闻是不曾的,可是视图和表之间是存在一定的涉及的,即便不一致数据库系统对此它们的新闻对应不肯定一致,然而大家得以把它们的对应关系寻找出来就足以给视图字段扩张备注了,那些就是本文介绍的笔触和做法了,本篇结合介绍代码生成工具Databae2Sharp的处理完成进行教学怎样取得视图中字段对应的备注音信。

① 、SQLServer数据库的视图新闻处理

大家为了演示视图的处理,大家须求创造多个表,以及视图的音信,首先大家创立3个客户音讯表,如下所示。

Oracle 1

Oracle 2

我们盼望以此T_Customer表中的Creator字段和用户表进行关联,然后大家添加叁个视图,当中的视图代码如下所示。

SELECT     dbo.T_Customer.ID, dbo.T_Customer.Name, dbo.T_Customer.Age, dbo.T_Customer.Creator, dbo.T_Customer.CreateTime, dbo.Users.UserName
FROM         dbo.T_Customer INNER JOIN
dbo.Users ON dbo.T_Customer.Creator = dbo.Users.ID

也正是列出T_Customer的字段,以及三个Users表中的Username字段,相当于关联了多个表的视图,获取那么些表的数量如下所示。

Oracle 3

好了,到此处大家着力就准备好前提条件了,剩下的正是怎样获得这么些视图的音信了。

在SQLServer里面,大家只要急需获得用户视图的音讯,那么通过系统的视图就足以拿走到了,如下所示。

Oracle 4

本条正是视图的称谓和视图SQL代码了,大家假使供给详细获取视图的字段新闻,这一个还不够,大家能够依据视图新闻更为列出用户视图和具体表的涉嫌,如下所示。

Oracle 5

从上海体育场地大家就能够看来这一个视图字段和表的字段的一一对应提到了,也正是足以经过具体表的字段消息,包蕴大家那里十二分关注的备注信息了。

诸如依照这几个规律,大家视图就径直从数据库表字段中领到备注消息了,从而完毕视图备注字段的全自动提取,减少人工设置的麻烦和不便。

Oracle 6

 

② 、Oracle数据库视图消息的拍卖

在Oracle里面包车型大巴视图字段音讯处理,和SQLServer有所差异,因为我们很难找到视图字段和表字段的各类对应提到的视图音信,因而有些不方便。

在Oracle里面我们先准备好2个T_Customer表,以及视图等基础音讯先。

Oracle 7

还要创制3个视图和用户表发生涉及,和在SQLServer一样的做法,SQL如下所示。

create or replace view view_customer as
select u.fullname, t.id, t.name, t.age, t.creator, t.createtime from t_customer t inner join t_acl_user u on t.creator = u.id;

咱俩因此Oracle的连串视图ALL_TAB_COLUMNS或者DBA_TAB_COLUMNS可以获取视图的字段消息,如下所示。

Oracle 8

可是很倒霉,那几个视图的新闻并未和视图关联表发生任何的滥竽充数,不可能获得到相应的表音讯,那么什么样获得视图对应表的信息吗,答案是能够经过ALL_DEPENDENCIES那几个视图进行获取,如下图所示。

Oracle 9

不过此地也只是得到到相应的表,没有和字段关联,不过尔尔基本上也大多了,因为我们能够获得视图字段,以及那么些视图里面富含的关联表,那么基本上它的字段消息也差不多锁定了,除非四个表之间很多字段名称相同,难以处理。

整合上面包车型地铁SQL,大家能够获得表和字段的新闻了,如下所示。

select distinct table_name, column_name from all_tab_columns where table_name in 
 (select referenced_name from all_dependencies where name='VIEW_CUSTOMER' and type = 'VIEW' and referenced_type = 'TABLE')  
  and column_name in (select column_name from all_tab_columns where table_name='VIEW_CUSTOMER') order by table_name; 

Oracle 10

如此大家依照视图对应表的字段音信,匹配它的备考消息就基本上了,最终我们来看望基于Oracle的兑现效益。

Oracle 11

Oracle 12

Oracle,从上海体育场地大家能够看来,代码工具Database2Sharp,遵照上述介绍的逻辑关系,自动从表对应的字段里面去匹配对应的备注音信,从而收缩手工业安装视图字段备注消息的累赘工作,为视图代码生成和界不熟悉成升高了进度和频率。

如上的视图备注消息的领到逻辑,大家得以把它使用在本身的事情处理个中,完成更为广阔的运用。

以上海电台图备注音讯的领取供给,来自一个客户的提出,格外不利,在此谢谢她为这一个细节做出的进献。

相关文章