介绍
在我们平时的开发中,有时候不可避免的需要查看数据库表字段信息,通过数据库查看特别繁琐,今天我推荐一款特别好用的开源组件screw可以一键式生成数据库文档。
特性
-
简洁、轻量、设计良好
-
多种格式文档(word、md和html)
-
可灵活扩展(支持HikariDataSource,DruidDataSource)
-
支持自定义模板(支持freemarker和velocity两种模板引擎)
目前已支持的主流数据库
-
MySQL
-
MariaDB
-
TIDB
-
Oracle
-
SqlServer
-
PostgreSQL
-
Cache DB(2016)
使用方式
新建SpringBoot工程 pom.xml引入
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>${lastVersion}</version>
</dependency>
配置数据源
spring.datasource.url=jdbc:mysql://XXX:3306/XXX?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#按照码云文档说明: MySQL数据库表和列字段有说明、生成文档没有说明
spring.datasource.xa.properties.userInformationSchema= true
编写测试类并测试
@SpringBootTest
class ScrewApplicationTests {
@Autowired
private ApplicationContext applicationContext;
@Test
void testGenerateDatabaseDocument() {
DataSource dataSource = applicationContext.getBean(DataSource.class);
EngineConfig engineConfig = EngineConfig.builder()
//生成文件路径
.fileOutputDir("/resources")
// 打开目录
.openOutputDir(true)
// 文件类型,支持word、md和html
.fileType(EngineFileType.HTML)
//生成模板实现,支持freemarker和velocity
.produceType(EngineTemplateType.freemarker).build();
//生成配置文档
Configuration configuration = Configuration.builder()
.version("1.0.3")
.description("学生数据库文档描述信息")
.dataSource(dataSource)
.engineConfig(engineConfig)
.produceConfig(getProcessConfig())
.build();
//执行生成
new DocumentationExecute(configuration).execute();
}
/**
* 配置想要生成的表 + 配置想要忽略的表
* @return
*/
private ProcessConfig getProcessConfig() {
// 忽略表名
List<String> ignoreTable = Arrays.asList("aa","test_group");
//忽略表前缀,如忽略a开头的数据库表
List<String> ignorePrefix = Arrays.asList("sys");
//忽略表后缀
List<String> ignoreSuffix = Arrays.asList("month");
return ProcessConfig.builder()
// 根据名称生成指定表
.designatedTableName(new ArrayList<String>())
// 根据表前缀生成
.designatedTablePrefix(new ArrayList<String>())
// 根据表后缀生成
.designatedTableSuffix(new ArrayList<String>())
// 忽略表名
.ignoreTableName(ignoreTable)
// 忽略表前缀
.ignoreTablePrefix(ignorePrefix)
// 忽略表后缀
.ignoreTableSuffix(ignoreSuffix).build();
}
}
导出的数据库表结构文档效果如下:
非常清晰,不过相信这款工具肯定对各位程序猿小伙伴有所帮助,大家赶紧来用用看吧。
点击下方卡片/微信搜索,关注公众号“天宇文创意乐派”(ID:gh_cc865e4c536b)
回复“screw”获取仓库地址
往期推荐
[
全方位解读 package.json
](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247487003&idx=4&sn=a3ef49248b147f63fd83db7b5e13eb21&chksm=ebb6ed78dcc1646e4deebdec23e08a64db148ec9d2211720eb106ea887f1ce58fd30aa4ae7c2&scene=21#wechat_redirect)
[
光追+DLSS,iGame RTX 30系显卡搭建梦幻仙剑世界
](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247486887&idx=1&sn=9f4efb32666daf3de0578cbd852dec45&chksm=ebb6eec4dcc167d2d82ec34df35f43077cc042f8ae8cbe60b8285581e28eca39ca6afa11133e&scene=21#wechat_redirect)
[
Spring Cloud Feign如何实现JWT令牌中继
](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247486887&idx=2&sn=db5455858b03cf4b7876d4869ad6498a&chksm=ebb6eec4dcc167d243fdc8b1f8d274f961c286eff57b93177813ca3bfef8373cb3435eeb144f&scene=21#wechat_redirect)
[
Facebook 宣布改名为Meta,未来重点开发元宇宙!
](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247486887&idx=3&sn=483c5a610f11344b75edecbfebd4a5df&chksm=ebb6eec4dcc167d297fb9a68e9072f29591f71cc84c7c2db2512f4efd7383e8eb1052e778ef4&scene=21#wechat_redirect)
[
正义没有迟到,他们还是赢了跟阿里的官司!
](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247486887&idx=4&sn=ac7d447f5c77893827f5682c25c6672c&chksm=ebb6eec4dcc167d27ac95c8caf2b139de2a55ce2f36ec13ce6584898e03e5958f156be9168f5&scene=21#wechat_redirect)