1.5万star!界面酷炫、简单易用的数据库开源客户端

Wesley13
• 阅读 903

【导语】DBeaver是一款跨平台的数据库工具,界面友好,支持主题设置,关键字高亮,支持导出er图,支持多种数据库,企业版支持nosql数据库。

简介
你在日常开发工作中,对于数据库的使用,是否使用了不同的客户端工具?Oracle使用Sqldeveloper?MySQL使用Navicat?Redis使用AnotherRedisManager?或者苦苦寻找破解的工具?想象一下,如果有一个客户端,可以同时支持以上多种数据库,并且还具有非常易用、酷炫的界面,关键还开源、免费,是不是会勾起你的好奇心?就这样,DBeaver成功地引起了我的注意。

DBeaver是一款免费开源的数据库工具,支持多种不同数据库,分为社区版(免费)和企业版(付费)。社区版的连接基于jdbc,也就是支持所有具有jdbc驱动的数据库,如MySQL、Oracle等,企业版除了具有社区版的功能外,还支持多种NoSQL数据库,如MongoDB、Redis等。

这个开源项目的地址是:

https://github.com/dbeaver/dbeaver!

1.5万star!界面酷炫、简单易用的数据库开源客户端

我个人实际试用的体验非常好,操作方便、界面友好。

下载安装

下载地址是:

https://dbeaver.io/download/

源码地址是:

https://github.com/dbeaver/dbeaver

我选择了Windows平台下载社区版ZIP包,版本是7.2.3,解压就能使用,以下介绍基于此,同时使用MySQL作为全文演示的目标数据库。解压后双击dbeaver.exe就能使用。这里我只介绍DBeaver几个我认为比较常用,并且其他工具不好用或者没有的功能,像编辑sql语句做CRUD操作这种常规功能就不做介绍了。

(但是实际使用起来,DBeaver的SQL提示功能更友好,会自动帮你起表别名等,并且支持SQL语句格式化,建议还是亲自上手试试,这里不做详细介绍)

修改主题

目前DBeaver支持的主题类型不多,但是程序员非常喜欢的暗黑主题已经有了,界面的风格和Jetbrain的开发工具十分相似,作为开发者,我是很有亲切感的。

设置主题的地方在窗口-首选项-常规-外观:

1.5万star!界面酷炫、简单易用的数据库开源客户端

连接MySQL

连接MySQL的过程和普通的数据库工具,输入ip、数据库名、用户名密码、测试,完成。

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

这里如果是第一次连接某种数据库,会有一个下载jdbc驱动包的过程,是自动的,但是需要等待一会。创建之后就可以正式使用DBeaver的功能了。

Blob字段显示

DBeaver支持在查询结果窗口中,将二进制数据做Hex或Base64编码显示,并且还能导出,这提供了很大的便利。在实际开发中,保存在数据库的二进制数据,在网络中传输中通常都是需要做Hex或Base64编码的。如果我们直接查询数据库,就需要将查询结果的二进制数据复制保存,再手工转化为Hex或Base64编码。有了DBeaver,显示和导出都能做到二进制数据的编码了。

Blob字段转换

1.5万star!界面酷炫、简单易用的数据库开源客户端

选中数据行-右键-显示/格式-binaryFormat-String/Hex/Base64,可以选择Hex或Base64编码。

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

Blob字段导出

Blob字段导出时,可以选择不导出该字段,导出到文件,或者以Hex或Base64编码导出。以导出CSV文件为例。

导出Blob字段为空

选中数据行-右键-导出结果集

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出到文件

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出为Base64编码

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出为Hex编码

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出ER图

DBeaver支持导出ER图。通常我们开发一个新系统,经常会对数据库修修改改,迭代开发过程中也会有一些调整,导致数据库表结构、字段可能和最初的设计不一样,ER图自然也处在不断更新变化中,而DBeaver支持导出ER图,那不管数据库如何变化,我们只需要一键导出就能生成ER图,生成设计文档,是不是很方便?
DBeaver生成ER图也很简单,双机目标数据库,右边窗口会新建一个tab,展示数据库表及生成ER图选项。        

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出ER图。注意下图导出按钮的位置:

1.5万star!界面酷炫、简单易用的数据库开源客户端

导出生成的图就是这样子,是不是很方便?

1.5万star!界面酷炫、简单易用的数据库开源客户端

数据比对

选中需要比较的数据库或者表,再点击工具栏的数据库->Compare/Migrate->Simple compare,根据自己的需要按提示点击比较即可,比较结果可以保存成文件或者直接打开浏览器显示页面。 1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

1.5万star!界面酷炫、简单易用的数据库开源客户端

监控

DBeaver还支持对数据库的监控,不管是线上环境还是开发环境,这都是极其有用的一个功能。打开监控面板的方法也很简单,选中数据库-右键-工具-Open DashBoard。监控的内容包括数据库流量、数据读写、数据查询次数、会话数等。(不同的数据库监控的内容不一样,这里以MySQL为例)

扩展

DBeaver还支持插件扩展,类似Eclipse或IDEA插件,可以从插件市场下载插件安装到DBeaver中,操作方法和步骤和Eclipse、IDEA简直一模一样,无缝衔接,这里也不详细展开了。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这