当前位置: 首页 > 科技观察

实际的!一键生成数据库文档,堪称数据库界的Swagger

时间:2023-03-17 17:11:44 科技观察

近期,部门订单业务调整,将其他业务条线的订单入口汇聚在一起,打造统一的大订单平台。需要梳理每个业务线的数据表,但每个业务线库都有近百张与订单相关的表,而且表一张一张,字段嗡嗡作响。为了不重复CV操作,我抱着一丝希望开始在GitHub上搜索,看看有没有什么工具可以使用。结果还真发现了一个宝物,screw(螺丝钉),居然可以生成数据库文件,优秀~。数据库文档图1.数据库支持MySQLMariaDBTIDBOracleSqlServerPostgreSQLCacheDB二.配置1.pom文件介绍了screw核心包和HikariCP数据库连接池。HikariCP被称为性能最好的数据库连接池。cn.smallbun.screw螺丝芯1.0.3com.zaxxerHikariCP3.4.5mysqlmysql-connector-java8.0.202.配置数据源配置数据源,设置useInformationSchema获取表注释信息。spring.datasource.url=jdbc:mysql://45.93.1.5:3306/fire?useUnicode=true&characterEncoding=UTF-8&useSSL=falsespring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-类名=com.mysql.cj.jdbc.Driversspring.datasource.xa.properties.useInformationSchema=true3、螺杆核心配置螺杆有两种执行方式,第一种是pom文件配置,另一种是代码执行。org.springframework.bootspring-boot-maven-plugincn.smallbun.screwscrew-maven-plugin1.0.3com.zaxxerHikariCP3.4.5mysqlmysql-connector-java8.0.20root123456com.mysql.cj.jdbc.Driverjdbc:mysql://41.92.6.5:3306/fireHTMLfalsefreemarker数据库文件生成${project.version}firedatabasedocumentationcompilerun配置完成后,在maven项目中双击执行ok->screw运行模式代码生成方式也很简单。@SpringBootTestpublicclassScrewApplicationTests{@AutowiredApplicationContextapplicationContext;@TestvoidcontextLoads(){DataSourcedataSourceMysql=applicationContext.getBean(DataSource.class);//生成文件配置EngineConfigengineConfig=EngineConfig.builder()//生成文件路径,自己的mac本地地址,这里需要自己替换路径下.fileOutputDir("D:/")//打开目录.openOutputDir(false)//文件类型.fileType(EngineFileType.HTML)//生成模板实现.produceType(EngineTemplateType.freemarker).build();//生成文档配置(包括下面自定义版本号、描述等配置连接)Configurationconfig=Configuration.builder().version("1.0.3").description("生成文档信息描述").dataSource(dataSourceMysql).engineConfig(engineConfig).produceConfig(getProcessConfig()).build();//执行生成newDocumentationExecute(config).execute();}/***配置你要g的表enerate+配置要忽略的表**@return生成表配置*/publicstaticProcessConfiggetProcessConfig(){//忽略表名ListignoreTableName=Arrays.asList("a","test_group");//忽略表前缀,例如忽略以ListignorePrefix=Arrays.asList("a","t");//忽略表后缀ListignoreSuffix=Arrays.asList("_test","czb_");returnProcessConfig.builder()//根据名称生成指定表.designatedTableName(Arrays.asList("fire_user"))//根据表前缀生成.designatedTablePrefix(newArrayList<>())//根据表生成tablesuffix.designatedTableSuffix(newArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();}}4.文档格式螺丝有HTML,DOC,MD三种格式文档代码修改.fileType(EngineFileType.HTML)或者pom文件MDDOC文档样式DOC文档HTML文档样式HTML文档MD文档样式MD文件