{"id":14972160,"url":"https://github.com/cocowwy/showdb","last_synced_at":"2025-10-07T17:21:51.300Z","repository":{"id":43726860,"uuid":"465709984","full_name":"Cocowwy/ShowDB","owner":"Cocowwy","description":"📖数据库文档工具，拆箱即用，支持多数据源表结构可视化，数据库敏感信息监控等","archived":false,"fork":false,"pushed_at":"2023-04-13T11:10:36.000Z","size":854,"stargazers_count":40,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"v1-dev","last_synced_at":"2025-07-16T12:04:06.436Z","etag":null,"topics":["database","mysql","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cocowwy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-03T12:29:26.000Z","updated_at":"2024-11-22T03:38:52.000Z","dependencies_parsed_at":"2024-10-11T06:40:35.942Z","dependency_job_id":null,"html_url":"https://github.com/Cocowwy/ShowDB","commit_stats":{"total_commits":290,"total_committers":2,"mean_commits":145.0,"dds":0.3551724137931035,"last_synced_commit":"3249041643d00ce8b28f35151e5e0adeda02a29f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cocowwy/ShowDB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cocowwy%2FShowDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cocowwy%2FShowDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cocowwy%2FShowDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cocowwy%2FShowDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cocowwy","download_url":"https://codeload.github.com/Cocowwy/ShowDB/tar.gz/refs/heads/v1-dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cocowwy%2FShowDB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278811887,"owners_count":26050191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","mysql","springboot"],"created_at":"2024-09-24T13:46:28.780Z","updated_at":"2025-10-07T17:21:51.270Z","avatar_url":"https://github.com/Cocowwy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📖ShowDB\n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\n[![JDK](https://img.shields.io/badge/JDK-1.8+-green.svg)](https://www.oracle.com/java/technologies/downloads)\n[![Stars](https://img.shields.io/github/stars/Cocowwy/ShowDB.svg?style=social)](https://github.com/Cocowwy/ShowDB)\n\n## ✋Features\n- 1 **拆箱即用**，引入pom文件，即可拆箱即用\n- 2 **UI界面丰富**\n- 3 **文档可视化**，能对数据库表结构一览无余，支持模糊搜索\n- 4 **支持多数据源**，自动对环境中存在的数据源进行监控与文档化\n- 5 支持**数据库表结构SQL迁移，数据库表结构文档下载**\n- 6 支持表**详细信息查询（如数据量大小，索引大小，存储引擎等），表的建表SQL，Java实体类代码生成**等\n- 7 支持监控数据源IP连接数，事务明细，数据库配置信息查询等查询\n- 8 **支持 MyBatis 代码的生成（可定制化）**\n\n## 🐰简介\n:zap: 拆箱即用的数据库文档工具，自动将SpringBoot项目中的所有数据源文档可视化，同时监控数据库相关的信息，如主从状态，配置等  \n:zap: 你可以将其直接引入你的SpringBoot工程，来直接展示当前项目的数据源，也可以参考 [showdb-test](https://github.com/Cocowwy/ShowDB/tree/v1-dev/showdb-test) 工程，对所有需要展示的数据源进行统一管理，形成一个公司内部的统一的文档\n\n## 🍺为啥开发这个？\n- 在使用 **screw** 的时候，需要配置数据源的连接信息，然后才会生成一个基于当前数据源的表结构文档🤪\n\n- 但是这个文档它是不可变的，且每次数据库修改了表结构，这个文档就得重新生成，何况，如果是多数据源，难道就需要生成多个文档嘛💐，那么这就**太麻烦了**，在实际开发过程中，迭代快的情况下往往就需要经常重新生成文档，这对于懒人来说是件很麻烦的事情\n\n- 那么咱就大漏特漏😵，现如今微服务基本都会连接上数据源🍎，所以如果能够对**SpringBoot项目中已经存在的数据源/多数据源，自动生成文档，那么会更迎合Javaer/Springer的使用习惯，就像swagger一样，拆箱即用，且支持用户的一些个性化的自定义配置🎠，同时也可以对数据源进行一些信息的监控，如比较关心的主从状态，客户端连接，一些数据库的配置信息等等，这些也都能集成进来，使其更符合ShowDB的名字** 🐥\n\n## 🧰如何使用？？\n- 在SpringBoot项目的pom.xml文件中引入依赖\n\n**稳定版☕** [地址戳这儿](https://search.maven.org/artifact/cn.cocowwy/showdb-spring-boot-starter)\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecn.cocowwy\u003c/groupId\u003e\n    \u003cartifactId\u003eshowdb-spring-boot-starter\u003c/artifactId\u003e\n    \u003cversion\u003e1.1.3\u003c/version\u003e\n\u003c/dependency\u003e\n```\n**如果要食用最新的快照版本（还在测试使用的功能），使用如下依赖🍔**  \n**注意，快照版的使用，需要带上下面的参数，因为默认是不会走 snapshots 的**\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecn.cocowwy\u003c/groupId\u003e\n    \u003cartifactId\u003eshowdb-spring-boot-starter\u003c/artifactId\u003e\n    \u003cversion\u003e1.1.4-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n\u003crepositories\u003e\n\u003crepository\u003e\n    \u003cid\u003eshowdb-snapshots\u003c/id\u003e\n    \u003curl\u003ehttps://s01.oss.sonatype.org/content/repositories/snapshots/\u003c/url\u003e\n    \u003csnapshots\u003e\n        \u003cenabled\u003etrue\u003c/enabled\u003e\n    \u003c/snapshots\u003e\n\u003c/repository\u003e\n\u003c/repositories\u003e\n``` \n\n**yml配置🔧**\n```yml\nshowdb:\n  enable: true\n  refresh: 500\n  customize:\n    creator: Cocowwy\n    img: https://avatars.githubusercontent.com/u/63331147?s=400\u0026u=d12524532cc111c9ec069f1aa754e702289a587c\u0026v=4\n    email: 514658459@qq.com\n    desc: 数据源可视化工具ShowDB，自动监控SpringBoot项目已存在数据源，自动生成数据库文档，MyBatis代码，及数据源监控信息等\n  plugin:\n    generate: true\n```\n\n- 项目中已经配置好单数据源（多数据源看下面的例子）\n- 浏览器中访问该路径：```/db```，即可自动生成当前项目里的所有数据源文档页面\n- 如果你的项目里面设置：```server.servlet.context-path```的配置为```xxx```，那么showdb的访问页面为：```/xxx/db```\n- ShowDB的内部接口前缀为：```/showdb```，**所以如果项目对请求路径做了限制，需要手动放开面带有```db```和```showdb```的接口的限制**\n\n\n**如果是多数据源如何接入？**\n- 如何配置呢，可以参考 ```showdb-test``` 这个moudle，或者参考下面这块代码（这是本人的例子，多数据源的注入并不一定这么写，环境里只要存在多数据源，就会自动给你配置好）\n\n**yml**\n```yml\nspring:\n  application:\n    name: ShowDB-TEST\n  datasource:\n    cms:\n      type: com.alibaba.druid.pool.DruidDataSource\n      driverClassName: com.mysql.cj.jdbc.Driver\n      url: jdbc:mysql://IP:3306/cms?\u0026useUnicode=true\u0026characterEncoding=utf8\u0026zeroDateTimeBehavior=convertToNull\u0026useSSL=true\u0026serverTimezone=Asia/Shanghai\n      username:\n      password:\n    oms:\n      type: com.alibaba.druid.pool.DruidDataSource\n      driverClassName: com.mysql.cj.jdbc.Driver\n      url: jdbc:mysql://IP:3306/oms?\u0026useUnicode=true\u0026characterEncoding=utf8\u0026zeroDateTimeBehavior=convertToNull\u0026useSSL=true\u0026serverTimezone=Asia/Shanghai\n      username:\n      password:\n    pms:\n      type: com.alibaba.druid.pool.DruidDataSource\n      driverClassName: com.mysql.cj.jdbc.Driver\n      url: jdbc:mysql://IP:3306/pms?\u0026useUnicode=true\u0026characterEncoding=utf8\u0026zeroDateTimeBehavior=convertToNull\u0026useSSL=true\u0026serverTimezone=Asia/Shanghai\n      username:\n      password: \n``` \n\n**数据源注入**\n```java\n    /**\n * 数据源1配置\n */\n@Bean(name = \"cms\", destroyMethod = \"close\", initMethod = \"init\")\n@ConfigurationProperties(prefix = \"spring.datasource.cms\")\n@Primary\npublic DruidDataSource createDataSource1() {\n        return DruidDataSourceBuilder.create().build();\n        }\n\n/**\n * 数据源2配置\n */\n@Bean(name = \"oms\", destroyMethod = \"close\", initMethod = \"init\")\n@ConfigurationProperties(prefix = \"spring.datasource.oms\")\npublic DruidDataSource createDataSource2() {\n        return DruidDataSourceBuilder.create().build();\n        }\n\n/**\n * 数据源3配置\n */\n@Bean(name = \"pms\", destroyMethod = \"close\", initMethod = \"init\")\n@ConfigurationProperties(prefix = \"spring.datasource.pms\")\npublic DruidDataSource createDataSource3() {\n        return DruidDataSourceBuilder.create().build();\n        }\n```\n![image](https://user-images.githubusercontent.com/63331147/197142803-5ee74156-5a60-4c4d-8930-425e64ed9d1f.png)\n![image](https://user-images.githubusercontent.com/63331147/197143324-47baaf83-f4a5-4517-8053-933a74f08846.png)\n- **ps：如果需要一份多业务库的综合的文档，你可以单独启动一个SpringBoot项目，然后将所有的业务库都注入进这个服务，这样能当做一个唯一的入口来做统一的业务数据库文档**\n\n## 🏷️版本选择\n|  环境   | 版本号  |\n|  ----  | ----  |\n| JDK | 1.8+ |\n| SpringBoot | 2.3.9.RELEASE+ |\n\n\n## 🔧**plugin可选值如下：**\n|  plugin   | 说明  |\n|  ----  | ----  |\n| * | 所有 |\n| generate  | 代码生成器（当前仅支持MyBatis） |\n\n\n## 📄**当前支持数据源如下：**\n|  数据源   | 是否支持  |\n|  ----  | ----  |\n| MySQL | 支持 |\n\n\n## 📦**包模块说明：**\n|  包名   | 说明  |\n|  ----  | ----  |\n| showdb-core | 核心逻辑处理等 |\n| showdb-spring-boot-autoconfigure | ShowDB的自动配置 |\n| showdb-spring-boot-starter | 引入starter即可开启 |\n| showdb-test | 测试模块，内含多数据源demo，测试sql等，quickstart戳这儿~ |\n| showdb-front | 前端资源 |\n\n## TODO 待开发的功能..\n- 增加对于数据库更多比较需要关心的参数进行可视化\n- 敏感触点做预警通知\n- 适配多种不同类型的数据库\n- 提供更多监控性的指标\n- UI界面的更加美观（这也是最难的）\n- 生成MyBatis相关文件\n\n## 微信公众号～\n\u003cimg src=\"https://user-images.githubusercontent.com/63331147/192079044-208ee2f1-381d-49b3-b60e-451350197f95.png\" width=\"200\" height=\"200\" alt=\"公众号\"/\u003e\u003cbr/\u003e\n\n## END🍕\n如果你有更好的意见，欢迎关注我公众号给我留言~\n如果你有更好的想法或者想添加，修复bug，欢迎PR~\n\n[![ShowDB](https://api.star-history.com/svg?repos=Cocowwy/ShowDb\u0026type=Date)]\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocowwy%2Fshowdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcocowwy%2Fshowdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocowwy%2Fshowdb/lists"}