使用DBeaver自动生成ER图

这篇具有很好参考价值的文章主要介绍了使用DBeaver自动生成ER图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要介绍了DBeaver如何操作,可以自动生成ER图,DBeaver的版本是6.2.0。表使用JPA自动生成。具体JPA的使用见JPA规范总结和整理

创建表格

创建实体类

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(name = "company")
public class Company {
    @Id
    @Column(name = "id", columnDefinition = "varchar(64)")
    @GenericGenerator(name="idGenerator", strategy="uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;

    private String name;

    private String address;
}


@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(name = "employee", uniqueConstraints = {@UniqueConstraint(columnNames={"department_id","company_id"})})
public class Employee {
    @Id
    @Column(name = "id", columnDefinition = "varchar(64)")
    @GenericGenerator(name="idGenerator", strategy="uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;

    @Column(name = "name", columnDefinition = "varchar(128) default null")
    private String name;

    @Column(name = "department_id", columnDefinition = "varchar(32) default null")
    private String departmentId;

    @JoinColumn(name="company_id")
    @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
    private Company company;
}

改配置文件自动生成表格

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.open-in-view=false

乱入一下:简单记录下别人整理的spring.jpa.open-in-view配置作用

open-in-view 是 Spring Boot 自动加载 Spring Data JPA 提供的一个配置,全称为
spring.jpa.open-in-view=true,它只有 true 和 false 两个值,默认是 true。那它到底有什么威力呢?

通过上面的源码我们可以看到,spring.jpa.open-in-view 的主要作用就是帮我们加载
OpenEntityManagerInViewInterceptor 这个类
我们可以发现,OpenEntityManagerInViewInterceptor 实现了 WebRequestInterceptor
的接口中的两个方法:

public void preHandle(WebRequest request) 方法,里面实现了在每次的 Web MVC 请求之前,通过
createEntityManager 方法创建 EntityManager 和 EntityManagerHolder 的逻辑;

public void afterCompletion(WebRequest request, @Nullable Exception
ex) 方法,里面实现了在每次 Web MVC 的请求结束之后,关闭 EntityManager 的逻辑。

我们如果继续看 createEntityManager 方法的实现,还会找到如下关键代码。 我们通过 SessionFactoryImpl
中的 createEntityManager() 方法,创建了一个 EntityManager 的实现 Session;通过拦截器创建了
EntityManager 事务处理逻辑,默认是 Join 类型(即有事务存在会加入);而 builder.openSession()
逻辑就是 new SessionImpl(sessionFactory, this)。

所以这个时候可以知道,通过 open-in-view 配置的拦截器,会帮我们的每个请求都创建一个 SessionImpl 实例;而
SessionImpl 里面存储了整个 PersistenceContext 和各种事务连接状态,可以判断出来 Session
的实例对象比较大。

并且,我们打开 spring.jap.open-in-view=true
会发现,如果一个请求处理的逻辑比较耗时,牵涉到的对象比较多,这个时候就比较考验我们对 jvm
的内存配置策略了,如果配置不好就会经常出现内存溢出的现象。因此当处理比较耗时的请求和批量处理请求的时候,需要考虑到这一点。

运行程序,自动创建表格

创建后的表格打印如下,可以看到是有外键生成的

Hibernate: create table company (id varchar(64) not null, address varchar(255), name varchar(255), primary key (id)) engine=InnoDB
Hibernate: create table employee (id varchar(64) not null, department_id varchar(32) default null, name varchar(128) default null, company_id varchar(64) not null, primary key (id)) engine=InnoDB

Hibernate: alter table employee drop index UKir8n5ax8yt8608nlq39f6aw0t
Hibernate: alter table employee add constraint UKir8n5ax8yt8608nlq39f6aw0t unique (department_id, company_id)
Hibernate: alter table employee add constraint FK5v50ed2bjh60n1gc7ifuxmgf4 foreign key (company_id) references company (id)

使用DBeaver自动生成ER图
使用DBeaver自动生成ER图

DBeaver中生成ER图

ctrl+左键选中需要创建ER关系图的表,右键菜单栏里点击创建新的ER图
使用DBeaver自动生成ER图填写图表的名字,点击完成
使用DBeaver自动生成ER图自动生成了er图
使用DBeaver自动生成ER图
点击连线,可以看到外键
使用DBeaver自动生成ER图文章来源地址https://www.toymoban.com/news/detail-444546.html

到了这里,关于使用DBeaver自动生成ER图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用LLM实现文本自动生成视频

    推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景     基于扩散的图像生成模型代表了计算机视觉领域的革命性突破。这些进步由Imagen,DallE和MidJourney等模型开创,展示了文本条件图像生成的卓越功能。有关这些模型内部工作的介绍,您可以阅读本文。 然而,

    2024年02月12日
    浏览(35)
  • 单元测试自动生成工具Evosuite的安装使用

    1.1介绍 官网: https://www.evosuite.org/ GitHub: https://github.com/EvoSuite 1.2安装插件 (1)直接安装 进入settigs中,点击plugins,搜索Evosuite,点击安装 (2)从官网下载安装 打开网页 https://plugins.jetbrains.com/plugin/18956-evosuite-xenoamess-tpm-/versions ,点击Download按钮下载插件。 选择菜单File

    2024年02月03日
    浏览(38)
  • 使用AI自动生成PPT提高制作效率

    在制作PPT方面,很多制作者都会轻易跳进一个怪圈:“我要制作一个关于关爱老人的PPT,该怎么做呢,有模板没有?”这个会涉及很多逻辑需要经过不断的思考,制作PPT要通过很多素材、使用技巧、方法经验的不断积累,然而在短时间内制作高质量的PPT这对初学者来说是件非常

    2024年01月17日
    浏览(46)
  • 教你如何使用pr语音自动生成字幕,pr自动识别声音添加字幕

    说到pr语音自动生成字幕,还是需要的用到Speech to Text for Premiere Pro 2022插件,这是一个pr语音自动生成字幕插件,可以自动生成序列的脚本并为视频创建可自定义的字幕,而且支持13种语言,需要的可以试试。 1、下载好Speech to Text for Premiere Pro 2022插件解压包,然后安装 2、安装

    2024年02月04日
    浏览(42)
  • Springboot 使用插件 自动生成Mock单元测试 Squaretest

    很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。 但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己改下就行

    2023年04月08日
    浏览(39)
  • ES简单教程(五)使用ElasticsearchRestTemplate手动生成ES索引 项目启动自动生成ES索引

    其实使用 SpringBoot 项目玩ES的时候,人家本身是提供了一个注解 @Docment 是可以自动在项目启动的时候创建ES索引的! 只不过没用,因为 ES 的版本在升级, ElasticsearchRestTemplate 配套的脚手架也在升级,所以你会在网上遇到一个情况:搜到的各类解决方案可能都太适配你的情况,

    2024年02月03日
    浏览(42)
  • 使用flask-sqlacodegen自动生成model实体类

    依赖库版本如下(供参考): 安装依赖库 pip install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com sqlalchemy==1.4.36 pip install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com flask-sqlalchemy==3.0.3 pip install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com flas

    2024年02月15日
    浏览(37)
  • 使用Puppeteer构建博客内容的自动标签生成器

    标签是一种用于描述和分类博客内容的元数据,它可以帮助读者快速找到感兴趣的主题,也可以提高博客的搜索引擎优化(SEO)。然而,手动为每篇博客文章添加合适的标签是一件费时费力的工作,有时候也容易遗漏或重复。本文将介绍如何使用Puppeteer这个强大的Node.js库来构

    2024年02月10日
    浏览(31)
  • 使用Python创建快速创建剪映草稿轨道,自动生成视频

    实现原理 : JianYingPro 项目文件是 json 的形式存储的,只需要创建 draft_content.json , draft_mate_info.json 打开软件后会自动补全。 作用:快速生成草稿,可以完成一个比较粗剪辑,提升效率。 本库可以帮你快速自动识别音频和视频添加到对应的轨道。自动生成草稿后,就可以自动剪

    2024年02月13日
    浏览(26)
  • 【ChatGPT实战】6.使用ChatGPT自动化生成PPT

    如果需要使用ChatGPT生成PPT,我相信看了上一篇Excel教程的读者,就会想到也通过ChatGPT生成VBA代码,再通过运行VBA代码的方式来自动生成PPT。 理论上是可以的,但是当你实际操作的时候会发现很难实现。因为PPT包含的元素实在是太多了,每张幻灯片都有标题和正文、都有不同

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包