PowerDesigner规划数据库&HibernateTools逆向生成java代码

简介: 这部分内容对我来说是新知识 PowerDesigner16.5大概700M,下载安装并破解。 创建一个model并将DBMS选择为mysql 自己规划数据库数据表如下图示例 默认PowerDesigner没有comment这个列需要自己手动添加 按ctr+U唤出如下图所示窗口,添加comment列.

这部分内容对我来说是新知识
PowerDesigner16.5大概700M,下载安装并破解。
_
创建一个model并将DBMS选择为mysql
_
自己规划数据库数据表如下图示例
_
默认PowerDesigner没有comment这个列需要自己手动添加
按ctr+U唤出如下图所示窗口,添加comment列
_
然后
_
_
将下面的代码copy到上面的窗体,运行

Option   Explicit 
ValidationMode   =   True 
InteractiveMode   =   im_Batch

Dim   mdl   '   the   current   model

'   get   the   current   active   model 
Set   mdl   =   ActiveModel 
If   (mdl   Is   Nothing)   Then 
      MsgBox   "There   is   no   current   Model " 
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
Else 
      ProcessFolder   mdl 
End   If

'   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view 
'   of   the   current   folder 
Private   sub   ProcessFolder(folder) 
      Dim   Tab   'running     table 
      for   each   Tab   in   folder.tables 
            if   not   tab.isShortcut   then 
                  tab.comment   =   tab.name 
                  Dim   col   '   running   column 
                  for   each   col   in   tab.columns 
                            col.comment=   col.name 
                  next 
            end   if 
      next

      Dim   view   'running   view 
      for   each   view   in   folder.Views 
            if   not   view.isShortcut   then 
                  view.comment   =   view.name 
            end   if 
      next

      '   go   into   the   sub-packages 
      Dim   f   '   running   folder 
      For   Each   f   In   folder.Packages 
            if   not   f.IsShortcut   then 
                  ProcessFolder   f 
            end   if 
      Next 
end   sub

然后把自己创建的一堆model创建为*.sql文件
_
注意文件编码格式,PowerDesigner和phpmyadmin中的格式需要保持一致
_
_
成功导入以后的提示信息
_
效果如下图所示,哈哈开心吧
_
上述内容是是使用工具创建.sql文件并在mysql的图形界面phpmyadmin上创建数据结构的过程,相当于过去的劳碌的工作也变成了文件、变成了.sql文件,变成了一个代码的作品,记录一下没有白干。
按照上述做法,可以通过重复的工作,创建整个数据库结构。但是我们的系统是需要重构数据结构,并数据迁移的,因此我们来讨论一下,数据库,怎么改?

  1. 数据库实体Entity
    旧系统实体太少要扩充,比如,版本的概念。

plm中对版本的实现是这样的1:N设计,物料和带有版本的物料是1:N的关系。
旧系统中,体现物料这个实体的有两个表:材料检验表(物料级别)和检验表(条目级别),其中前者通过Matnr+Version作为物料的唯一标识,后者通过Matnr+序号唯一标识一个条目。
材料检验表:物料1:N版本 (1个物料有N个版本)
检验表:物料1:N版本:N*M条目(1个物料有N个版本,1个版本有M个条目)
现在我们修改一下,将两个实体,扩展为三个实体:
物料表(MARA) 物料号Matnr作为唯一标识。MARA中只存储非常非常少的字段,比如3个字段。matnr ename 和 msn,这个表就是要简洁明了。根据plm中的概念(我听说的)从外部界面无法直接感知MARA,只能感知MARC。
物料版本表(MARC) 与MARA是聚合关系,一对多。这个表中体现版本等信息,目的在于,同一个物料编码的不同版本,对应的物料信息,可能完全不一样。比如换了供应商,比如材质,比如彻底就不一样了,这很有可能。MARA的msn作为MARC的外键,用来建立两个表的关联。MARC中主键为vsn,MARA的msn作为MARC的外键。
条目(ITEMS)
主键为isn,外键为vsn。
据说这样可以防止数据冗余。
上述说法,是错误的,原因是在入库检验系统中,物料是没有版本的。这个是因为入库检验中物料的数据来源是SAP中的MM模块中收货相关的报表数据,而我们公司中SAP系统的物料本身就没有版本。
SAP的物料数据来源是PLM,PLM中的物料有版本,但是升版本就必须改变物料号。既然数据源中物料的版本就是一个象征,那么入库检验的时候,物料版本是没有意义的。

对于入库检验系统,物料的意义就是一个编号,关联了待检单和检验标准。
物料----检验标准----检验条目
物料MARA : mSn(PK) 物料编码(M) 物料信息
检验标准StandardMatnr : sSn(PK) 物料编码(FK M) 版本(M)
检验条目StandardItem : iSn(PK) sSn(FK M)
物料和检验标准的关系 1:N
检验标准和检验条目的关系 N:N*M
目前对数据库的规划如下所示
_
上述内容还要继续修改,字段长度之类的
下面hibernate tools
_
_
_

目录
相关文章
|
17天前
|
设计模式 Java
Java设计模式:组合模式的介绍及代码演示
组合模式是一种结构型设计模式,用于将多个对象组织成树形结构,并统一处理所有对象。例如,统计公司总人数时,可先统计各部门人数再求和。该模式包括一个通用接口、表示节点的类及其实现类。通过树形结构和节点的通用方法,组合模式使程序更易扩展和维护。
Java设计模式:组合模式的介绍及代码演示
|
21天前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
7天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
20 5
|
9天前
|
Java API 开发者
探索Java中的Lambda表达式:简洁与强大的代码实践
本文深入探讨Java中Lambda表达式的定义、用法及优势,通过实例展示其如何简化代码、提升可读性,并强调在使用中需注意的兼容性和效率问题。Lambda作为Java 8的亮点功能,不仅优化了集合操作,还促进了函数式编程范式的应用,为开发者提供了更灵活的编码方式。
|
5天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
8天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
9天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
24 3
|
8天前
|
存储 Java 索引
使用java代码实现左右括号查找
使用java代码实现左右括号查找
|
9天前
|
算法 Java
java 概率抽奖代码实现
java 概率抽奖代码实现
|
17天前
|
Java 程序员 API
Java中的Lambda表达式:简化代码的秘密武器
在Java 8中引入的Lambda表达式是一种强大的编程工具,它可以显著简化代码,提高可读性。本文将介绍Lambda表达式的基本概念、优势以及在实际开发中的应用。通过具体示例,您将了解如何使用Lambda表达式来简化集合操作、线程编程和函数式编程。让我们一起探索这一革命性的特性,看看它是如何改变Java编程方式的。
25 4
下一篇
无影云桌面