java 轻量数据库_DBTree是一个springboot2 + vue-element-template实现的轻量数据库表结构查看及管理工具...

DBTree简介

DBTree是一个WEB版的轻量数据库表结构查看及管理工具,相比phpMyAdmin, DBTree只专注于方便开发查看表结构信息和 注释维护。通过树形展示库表结构,可以对表进行自定义归类,在线更新注释。你还可以使用它来部分替代mybatis generator的代码生成 功能。

Features

一键生成下载mybatis资源

对表进行目录分类

展示表结构信息

分表只展示其中一个表结构

修改表注释,字段注释

支持mysql, sqlserver

表结构导出markdown文档

网页方式管理,方便共享

功能截图

树形展示表信息,可编辑注释

table.png

选择目录,勾选表,生成mybatis资源

mybatis.png

添加分类目录,对表进行归档

addfolder.png

archive.png

功能演示

dbtree_demo.gif

为何写这个小工具

在不断的迭代过程中,数据库是开发之间沟通非常频繁且重要的一个环节,我们发现无论是mss management studio,phpMyAdmin这类数据库客户端还是 类似Power Designer的数据库设计软件对表信息共享,注释维护这两个需求来说用起来都非常不便利,尤其是有上千个分表的时候,客户端用起来还是非常难受的。 所以写了这个网页小工具,希望对有同样需求的人有所帮助。

还有一个很酷的功能,就是你可以选择表,然后一键生成下载mybatis资源文件的功能,非常方便,不用配置mybatis generator配置文件。

配置修改

服务器配置

dbtree-backend/src/main/resources/dbconfig/db-server.json

{

"mysql-127.0.0.1": {

"db_type": "mysql",

"host": "127.0.0.1",

"port": 3306,

"user": "root",

"password": "123456"

},

"sqlserver-127.0.0.2": {

"db_type": "sqlserver",

"host": "127.0.0.2",

"port": 1433,

"user": "root",

"password":"123456"

}

}

密码是明文配置

数据库配置

dbtree-backend/src/main/resources/dbconfig/db-config.json

{

"db_1": {

"db_name": "db_1",

"db_server": "mysql-127.0.0.1",

"split_table_rules": [

{

"delegate_table": "rule",

"table_pattern": "rule_%"

}

]

},

"db_2": {

"db_name": "db_2",

"db_server": "sqlserver-127.0.0.2"

}

}

db-config.json配置文件内容是map结构的json数据,其中key必须和库名(db_name)一致。split_table_rules是指定分表策略,例子的意思是用 rule 代替所有rule_%的表。

mybatis.base.folder

mybatis生成文件存放目录。

mybatis.mysql.connector

mysql jdbc jar包位置, 用于配置mybatis generator core的mysql classpathEntry。你可以直接使用dbtree/connector/mysql-connector-java-5.1.36.jar 拷贝到你的服务器上

mybatis.sqlserver.connector

sqlserver jdbc jar包位置, 用于配置mybatis generator core的SQL Server classpathEntry。你可以直接使用 dbtree/connector/sqljdbc42.jar拷贝 到你的服务器上

表结构语句

mysql表创建语句见:dbtree-backend/doc/schema目录

数据库连接配置

自行修改配置文件中的数据库服务器地址,和用户名, 密码,密码使用druid默认加密。参考: druid数据库密码加密

开发调试

环境要求

jdk 1.8+

node.js

为了更好的开发体验,你应该单独使用VS Code打开dbtree-vue目录,进行调试。执行如下命令:

# install dependency

npm install

# 建议不要直接使用 cnpm 安装以来,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题

npm install --registry=https://registry.npm.taobao.org

# develop

npm run dev

部署

JDK使用1.8

项目使用 springboot2.x + vue-element-template + mybatis。dbtree-vue资源会打包进dbtree-backend/src/main/resources/public下。直接部署 dbtree-backend/target/dbtree-{version}.jar就可以了。

打包后会自动生成dbtree-backend/target/dbtree-{version}.zip文件,将包上传到服务器上,解压后,已经写好启动脚本,端口改为自己的即可。

# start

scripts/startup.sh

# stop

scripts/shutdown.sh

这个工具主要给开发人员使用,部署到测试就可以了,没必要部署到线上,也不安全。

后续规划

增加服务器配置页面,数据库配置页面,动态增加数据库,不用修改配置重新部署

表列表在表名增加链接,点击可以到表详细页

表详细页面,增加表注释修改功能

数据库展开,获取下面两级数据,解决只获取一级数据,搜索功能显得鸡肋的问题

主要技术

Element tree组件

mybatis generator core

springboot2.x

vue 2.x

致谢

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

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

相关文章

华为java 优招面试题_2017华为优招笔试题

哎,没有接到笔试通知,不知道为啥就错过了。之后见到题目,前两道编程题。其实都见过类似的题目,有点思路,但是直接快速完整实现出来,水平还是达不到。这样的题目,也不算难,三道编程题…

java inject例子_java – 手动实例化@InjectMock带注释的字段

我已经浏览了一些博客,以了解Mockito注释如何工作的基础知识.但是,我怀疑何时可以手动实例化用InjectMocks注释的字段,即InjectMocksA a new A();什么时候依靠MockitoAnnotations.initMocks()功能来做同样的事情:InjectMocksA a;这取决于我们用来运行测试用例的Jun…

java 新建 api 案列_Java利用webservice创建接口案例源码

环境要求:JDK1.7,并配置Java的环境变量BaseDao 接口:/*** 要使得成为一个可供访问的接口,必须添加:WebService* */WebServicepublic interface BaseDao {//添加一个加法的接口WebResult(name"addddddre")pu…

java通用异常_Java常用异常整理

填坑,整理下Java的常用异常。正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系、常用异常类、常用异常类…

mysql 读取properties_JDBC中使用Properties读取配置文件有什么用

开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。使用properties文件,Java中有专门用来装载配置文件的类Properties(Java.util.Properties)…

java preferences设置_Java利用Preferences设置个人偏好

Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好。而这些信息个人理解应该就是存储在系统的注册表中。下面我们…

java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)

第一次写项目开发经验,望担待。除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页、列表页)。项目开发简述项目需求:上传图片并展示。项目地址:项目的链接地址开发工具:sublime后台:java开发语言&am…

java 空包_圆通快递接口,圆通快递礼品商城接口、圆通空包接口,圆通快递低价接口,礼品商城接口、一件代发接口...

更新仓库列表接口地址:http://xxxxxx.com/shop/updates/update-warehouse-list 违心:juzivtu接口介绍:更新发货仓库及发货快递信息请求方式:POST传参方式:JSON返回格式:JSON接口收费:开通一次,…

c和java内存泄漏区别_内存溢出和内存泄漏的区别(转)

1.1内存溢出:(Out Of Memory---OOM)系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出例子:一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不…

php正则表达式匹配逗号,数字和逗号PHP正则表达式只

我需要创建一个正则表达式验证逗号分隔的数值。数字和逗号PHP正则表达式只他们应该是这样的:1,2,3,4,5等....的值必须是一个数字,如:1点之前或之后没有空的空间,没有逗号之前或之后。或者......多个数值以逗号分隔。第一个和最后一…

java想要生成 字符串,如何在Java中“优雅地”生成String?

我想生成一个字符串,如sql命令:"INSERT INTO xxx VALUES(XXX, XXX, XXX)"目前我使用StringBuilder和一些String常量,如“INSERT INTO”来连接表名和插入值的输入String参数.但是,除了性能问题之外,这种简单的连接看起来并不优雅.有没有其他方法这样做&…

java语言中json转换,JSON字符串和JAVA语言对象的相互转换教程

本文主要向大家介绍了JSON字符串和JAVA语言对象的相互转换教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。一:字符串转换为对象:使用JSON.parse()方法var str { "name": "AndrewNeo", "sex"…

php中的数组用什么统计,php数组元素统计与值汇总

array_count_values()array_count_values() 函数用于统计数组中所有值出现的次数。本函数返回一个数组&#xff0c;其元素的键名是原数组的值&#xff0c;键值是该值在原数组中出现的次数。语法 : array_count_values(array)参数描述array必需。规定输入的数组。例子<?php …

10天时间做出php,php 最近10天的所有日期

背景&#xff1a;有时候&#xff0c;比如画曲线图&#xff0c;需要前一天起近10天的日期&#xff0c;你不能获取昨天的时间一天一天减&#xff0c;可别减出20140230&#xff0c;20140231&#xff0c;这就闹笑话了我用下面的笨方法。$date array();for($i10;$i>1;$i--){$dat…

php cgi漏洞,Nginx + PHP CGI的一个可能的安全漏洞

现在普遍的Nginx PHP cgi的做法是在配置文件中, 通过正则匹配Nginx(PHP/fastcgi的PATH_INFO问题,设置SCRIPT_FILENAME, 今天发现了一个这种方式的安全漏洞.为什么会这样呢?比如, 如下的nginx conf:location ~ .php($|/) {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.p…

java开发怎么优化代码,代码优化,该如何处理

当前位置:我的异常网 Java Web开发 代码优化,该如何处理代码优化,该如何处理www.myexceptions.net 网友分享于&#xff1a;2014-08-19 浏览&#xff1a;0次代码优化public String Txt() throws ParseException {re (HttpServletRequest) ActionContext.getContext().get(S…

kali2.0安装mysql,Ubuntu/kali上安装MySQL,设置远程访问详细教程

搜索热词Ubuntu上安装MysqL非常简单只需要几条命令就可以完成。1. sudo apt-get install MysqL-server2. apt-get installMysqL-client (可选)3. sudo apt-get install libMysqLclient-dev(可选)安装过程中会提示设置密码什么的&#xff0c;注意设置了不要忘了&#xff0c;安装…

php数组在golang,go语言数据类型-数组(array)

数组是Go语言编程中最常用的数据结构之一。顾名思义&#xff0c;数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element)&#xff0c;一个数组包含的元素个数被称为数组的长度。在Go语言中数组是一个值类型(value type)。是真真实实的数组&#xff…

php session 反序列化,PHP SESSION反序列化本地样例分析

PHP SESSION反序列化本地样例分析0X00漏洞原因主要原因是&#xff1a; ini_set(‘session.serialize_handler’, ‘php_serialize’);ini_set(‘session.serialize_handler’, ‘php’);两者处理session的方式不同。0X01漏洞分析如果在PHP在反序列化存储的$_SESSION数据时使用的…

php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?

事实上&#xff0c;所有插件后端代码都等同于将代码片段添加到functions.php中&#xff0c;functions.php代码片段可以生成插件&#xff0c;然后插件可以自然地集成到functions.php中。插件主要易于管理&#xff0c;但也增加了静态资源请求的数量。如果您知道如何处理这些请求&…