DataUml Design 介绍8-DataUML 1.2版本正式发布

为什么80%的码农都做不了架构师?>>>   hot3.png

 DataUML 1.2版本在软件架构上有了很大的变化,目前DataUML支持Access、SQLite、MY SQL 、ORACLE、MS SERVER2000、MS SERVER2005、MS SERVER2008数据库。  下载

 主要更新内容如下:
  1、支持SQLite数据库,支持生成SQLite数据库模型;
  2、支持生成SQLite数据库代码;
  3、支持数据表字段自定义属性;
  4、数据表属性、字段属性、键属性和索引属性;
  5、支持用户自定义类型;
  6、支持表索引;
  7、支持生成、批量导出SQL语句以及SQL预览功能;

 

软件主界面

下面我将介绍1.2版本主要更新的内容。 

一、支持SQLite数据库

  1、点击工具栏上的 按钮,出现下拉菜单如下图:

  点击“SQLite”,出现连接SQLite数据库的界面,如下图:

     

点击“确定”,这样我们就可以成功连接SQLite数据库了。

  成功连接数据库之后,选择数据库节点,右键“生成数据模型”,这里我们选择C#模型,如下图成功生成了SQLite数据库模型

  这样数据模型和SQLite数据库绑定了,修改数据模型可以直接同步到SQLite数据库,具体操作这里不演示了。

二、支持生成SQLite数据库代码

  选择右边的SQLiteDAL.tt”模板文件,选中模型中的表,右键点击“查看代码”,如下图

 

  就可以成功生成SQLite代码了。如下图

三、数据表字段自定义属性

  数据表的字段可以自己定义一些自定义属性,如下图

    生成代码的时候可以得到字段的自定义属性值。如下图

  获得字段自定义属性的模板代码如下:

命名空间:<#= host.ClassProperty.Namespace #>
类名:<#= host.ClassProperty.ClassName #>
类中文名:<#= host.ClassProperty.ClassOtherName #>
表名:<#= host.ClassProperty.TableName #>
可访问性:<#= host.ClassProperty.Accessibility==null?"":host.ClassProperty.Accessibility #>
修饰符:<#= host.ClassProperty.Modifier==null?"":host.ClassProperty.Modifier #>
用户:<#= host.ClassProperty.User==null?"":host.ClassProperty.User #> 
备注:<#= host.ClassProperty.Remarks #>
数据库类型:<#= host.ClassProperty.DataAccessType #>
语言:<#= host.ClassProperty.ProjectLanage #>
字段:
<# foreach(var f in host.ClassProperty.Fields)
{
    WriteLine("    属性名:"+f.PropertyName);
    WriteLine("    属性别名:"+f.PropertyOtherName);
    WriteLine("    属性类型:"+f.DataType);
    WriteLine("    修饰符:"+f.Modifier);
    WriteLine("    可访问性:"+f.Accessibility);
    WriteLine("    是否空类型:"+f.IsNullType);
    WriteLine("    初始值:"+f.InitialValue);
    WriteLine("    是否只读:"+f.IsReadable);
    WriteLine("    是否可写:"+f.IsWritable);
    WriteLine("    字段名:"+f.FieldName);
    WriteLine("    字段类型:"+f.FieldType);
    WriteLine("    长度:"+f.FieldLength);
    WriteLine("    自增字段:"+f.isIdentity);
    WriteLine("    是否为空:"+f.IsNull);
    WriteLine("    是否主键:"+f.IsPrimaryKey);
    if(f.IsPrimaryKey)
    {
      WriteLine("    主键类型:"+f.PrimaryKeyType);
    }
    WriteLine("    是否外键:"+f.IsForeignKey);
    WriteLine("    默认值:"+f.DefaultValue);
    WriteLine("    备注信息:"+f.Remarks);
    if(f.Attributes.Count>0)
    {
    WriteLine("    属性:");
    foreach(var p in f.Attributes)
    {
     WriteLine("        属性名:"+p.Name);
     WriteLine("        属性值:"+p.Value);
    }
    }
    if(f.CustomAttributes.Count>0)
    {
    WriteLine("    自定义属性:");
    foreach(var p in f.CustomAttributes)
    {
     WriteLine("        属性名:"+p.Name);
     WriteLine("        属性值:"+p.Value);
    }
    }
    WriteLine("    ----------------");
}
#>
  

四、数据表属性、字段属性、键属性和索引属性

  1、MY SQL数据库的数据表属性,如下图

  2、MY SQL数据库的数据表字段属性,如下图

  3、MS SERVER数据库的主键属性,如下图

  4、MS SERVER数据库的外键属性,如下图

  5、MS SERVER数据库的索引属性,如下图

 

五、支持用户自定义类型

  用户可以自己定义数据类型,如有时候我们需要以GUID来作为表的主键,这时我们可以定义一个GUID类型的字段类型。具体操作流程:选择数据模型节点,右键,在弹出的菜单中选择“设置”,如下图

  这里我们定义GUID的类型为nvarchar,长度为38,我们就可以使用这个数据类型了,如下图

 

六、支持表索引;

  增加对数据表索引的支持,主要表现在以下几个方面:

    1)、从数据库反射出模型时,把表索引信息也反射出来了;

    2)、支持索引属性信息;

    3)、支持索引信息和数据库表索引同步;

    4)、支持生成索引的SQL语句;

七、支持生成和批量导出SQL语句;

  选择数据模型节点,右键,如下图:

  选择“生成SQL...”可以生成完整的数据库SQL语句,如下图

  选择“导出SQL...”可以把SQL语句保存到文本文件中。

  SQL预览功能如下图:

 


转载于:https://my.oschina.net/netuml/blog/224745

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 高级数据类型(二)—— 字符序列

前面基础知识部分讲C变量类型的时候&#xff0c;我们已经提到过C的标准函数库提供了一个string类来支持对字符串的操作。然而&#xff0c;字符串实际就是一串连续的字符序列&#xff0c;所以我们也可以用简单的字符数组来表示它。 例如&#xff0c;下面这个数组: char jenny …

C++ 高级数据类型(三)—— 指针

我们已经明白变量其实是可以由标识来存取的内存单元。但这些变量实际上是存储在内存中具体的位置上的。对我们的程序来说&#xff0c;计算机内存只是一串连续的单字节单元(1byte cell)&#xff0c;即最小数据单位&#xff0c;每一个单元有一个唯一地址。 计算机内存就好像城市中…

C++ 高级数据类型(四)—— 动态内存分配

到目前为止&#xff0c;我们的程序中我们只用了声明变量、数组和其他对象&#xff08;objects&#xff09;所必需的内存空间&#xff0c;这些内存空间的大小都在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量&#xff0c;其数值只有在程序运行时 (runtime)才能确…

C++ 高级数据类型(六)—— 自定义数据类型

前面我们已经看到过一种用户&#xff08;程序员&#xff09;定义的数据类型&#xff1a;结构。除此之外&#xff0c;还有一些其它类型的用户自定义数据类型&#xff1a; 定义自己的数据类型 (typedef) C 允许我们在现有数据类型的基础上定义我们自己的数据类型。我们将用关键字…

JSF 2.0/2.1 生命周期简介

2019独角兽企业重金招聘Python工程师标准>>> 标准的生命周期划分为六个阶段&#xff1a;恢复视图、应用请求值、验证、更新模型值、调用应用程序、渲染响应&#xff0c;每一个阶段都可以直接跳转到最后一个阶段或者结束。 转载于:https://my.oschina.net/koulikoro/…

C++ 面向对象(一)—— 类(Classes)

类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class &#xff0c;其功能与C语言中的struct类似&#xff0c;不同之处是class可以包含函数&#xff0c;而不像struct只能包含数据元素。 类定义的形式是&#xff1a; [cpp] view plaincopy class cl…

Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景

Seen.js 渲染3D场景为 SVG 或者 HTML5 画布。Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象。所有这个库的其它组件都是不用关心将要渲染的上下文的类型。 您可能感兴趣的相关文章你见过吗&#xff1f;9款超炫的复选框&#xff08;Checkbox&#xff09;效…

C++ 面向对象(三)—— 类之间的关系

友元函数(Friend functions) 在前面的章节中我们已经看到了对class的不同成员存在3个层次的内部保护&#xff1a;public&#xff0c; protected 和 private。在成员为 protected 和 private的情况下&#xff0c;它们不能够被从所在的class以外的部分引用。然而&#xff0c;这个…

五年后存储会是什么样子

原文&#xff1a;http://chucksblog.emc.com/chucks_blog/2013/06/what-storage-might-look-like-in-five-years.html注明&#xff1a;本文内容基于 VMware VSAN beta 版本撰写&#xff0c;请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。有时…

java.lang.NoClassDefFoundError: javax/transaction/Synchronization (jUnit测试报错)

测试hibernate报错原因项目缺少包在 hibernate 解压目录下找到 jta.jar 文件往项目中添加该 jar 包&#xff0c;即可解决添加方法&#xff1a;【右击项目】-->【构建路径】....来自为知笔记(Wiz)转载于:https://www.cnblogs.com/zhanyao/p/3711322.html

yarn oom问题一例

线上部分job运行失败&#xff0c;报OOM的错误:因为是maptask报错&#xff0c;怀疑是map数量过少&#xff0c;导致oom&#xff0c;因此调整参数&#xff0c;增加map数量&#xff0c;但是问题依然存在。看来和map的数量没有关系。通过jobid查找jobhistory中对应的日志信息&#x…

C++ 高级篇(三)—— 出错处理

本节介绍的出错处理是ANSI-C 标准引入的新功能。如果你使用的C 编译器不兼容这个标准&#xff0c;则你可能无法使用这些功能。 在编程过程中&#xff0c;很多时候我们是无法确定一段代码是否总是能够正常工作的&#xff0c;或者因为程序访问了并不存在的资源&#xff0c;或者由…

C++ 高级篇(一)—— 模板(Templates)

模板(Templates)是ANSI-C 标准中新引入的概念。如果你使用的 C 编译器不符合这个标准&#xff0c;则你很可能不能使用模板。 函数模板( Function templates) 模板(Templates)使得我们可以生成通用的函数&#xff0c;这些函数能够接受任意数据类型的参数&#xff0c;可返回任意类…

PPT到底是天使还是魔鬼?

说老实话&#xff0c;我非常不喜欢那些PPT的培训者一味地鼓吹PPT的重要性&#xff0c;视觉化思维的重要性&#xff0c;PPT在演讲中的重要性等等&#xff0c;我很清楚他们这么说是因为他们必须这么说&#xff0c;因为如果不把PPT的重要性强调一下&#xff0c;谁来上他的课呢&…

ultraedit正则表达式

一般使用ultraedit中的Perl风格的正则表达式&#xff0c;下面是perl正则的基本语法 perl中的元字符如下&#xff1a; ^ 表示一行的开头&#xff1b; $ 表示一行的结尾&#xff1b; ( ) 表示一个匹配块的&#xff0c;可以对匹配上的块通过$1,$2...进行读取&#xff0c;…

微软云介绍

微软云介绍 http://msdn.microsoft.com/zh-cn/ff380142 什么是云开发&#xff1f;&#xff08;概述&#xff09; 云计算是指远程运行并通过 Internet 访问的计算机和应用程序。在云计算中&#xff0c;虚拟机在大型数据中心中运行&#xff0c;并取代了物理 PC 和服务器。通过将许…

IO端口和IO内存的区别及分别使用的函数接口

IO端口和IO内存的区别及分别使用的函数接口 每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口&#xff0c;通常包括&#xff1a;控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式&#xff0c;可以把CPU分成两大类。一类CPU&#xff08…

Win8 HTML5与JS编程学习笔记(二)

近期一直受到win8应用的Grid布局困扰&#xff0c;经过了半下午加半个晚上的奋斗&#xff0c;终于是弄明白了Grid布局方法的规则。之前我是阅读的微软官方的开发教程&#xff0c;书中没有详细说明CSS3的布局规则&#xff0c;自己鼓捣了半天也是一头雾水&#xff0c;于是又找到了…

Windows下的Qt Creator的安装

采用Qt和Qt creator分别下载和安装的方式&#xff1a;&#xff08;需要手动设置关联Qt和Qt Creator&#xff09; 一、软件下载 从http://qt-project.org/downloads分别下载Qt和Qt Creator&#xff1a; Qt使用4.7.2版本&#xff1a;qt-win-opensource-4.7.2-mingw.exe Qt Creato…

进程 、进程组、会话、控制终端之间的关系

一个进程组可以包含多个进程 进程组中的这些进程之间不是孤立的&#xff0c;他们彼此之间或者存在者父子、兄弟关系&#xff0c;或者在功能有相近的联系。 那linux为什么要有进程组呢&#xff1f;其实提供进程组就是方便管理这些进程。假设要完成一个任务&#xff0c;需要同时并…