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
_
_
_

目录
相关文章
|
2月前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
84 1
|
2月前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
71 5
|
4天前
|
JSON Java 数据挖掘
利用 Java 代码获取淘宝关键字 API 接口
在数字化商业时代,精准把握市场动态与消费者需求是企业成功的关键。淘宝作为中国最大的电商平台之一,其海量数据中蕴含丰富的商业洞察。本文介绍如何通过Java代码高效、合规地获取淘宝关键字API接口数据,帮助商家优化产品布局、制定营销策略。主要内容包括: 1. **淘宝关键字API的价值**:洞察用户需求、优化产品标题与详情、制定营销策略。 2. **获取API接口的步骤**:注册账号、申请权限、搭建Java开发环境、编写调用代码、解析响应数据。 3. **注意事项**:遵守法律法规与平台规则,处理API调用限制。 通过这些步骤,商家可以在激烈的市场竞争中脱颖而出。
|
2月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
94 38
|
21天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
45 3
|
2月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
171 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
61 24
|
29天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
62 2
|
1月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
87 5
|
1月前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
64 5