screw是用来生成数据库表结构说明文档的组件,通过引用jar包,通过简单的配置就可以自动生成文档,相当于数据库中的swagger,支持html, word, md三种格式的文档
超过十年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:网站制作、做网站,成都网站推广,成都网站优化,整体网络托管,小程序设计,微信开发,重庆APP软件开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!引入依赖作为一个springboot web项目运行,所以引入spring web
使用mysql连接驱动器,所以引入mysql-connector-java
screw-core和HikariCP是screw组件使用需要的依赖
最后,需要用单元测试的方式来调用生成文档的方法,所以需要spring-boot-starter-test依赖
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime cn.smallbun.screw screw-core 1.0.5 com.zaxxer HikariCP 3.4.5 org.springframework.boot spring-boot-starter-test test
生成数据库说明文档import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
import cn.smallbun.screw.core.engine.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.sql.DataSource;
import java.util.ArrayList;
@RunWith(SpringRunner.class)
// 单元测试类的原注解如上,运行出现javax.websocket.server.ServerContainer not available,经查阅资料,得知SpringBootTest在启动的时候不会启动服务器,所以WebSocket自然会报错
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class DatebaseDocDemoApplicationTests {@Test
public void generateDBDoc(){HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true");
hikariConfig.setUsername("root");
hikariConfig.setPassword("123456");
// 设置可以获取remark信息
hikariConfig.addDataSourceProperty("useInformationSchema","true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
// 生成配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路径
.fileOutputDir("D:\\testMysqlDoc")
// 打开目录 设置为true执行完代码后会自动打开对应路径文件夹
.openOutputDir(true)
// 文件类型,支持三种类型
.fileType(EngineFileType.HTML)
// .fileType(EngineFileType.WORD)
// 生成模板实现
.produceType(EngineTemplateType.freemarker).build();
// 忽略表,这些表不会在文档中生成
ArrayListignoreTableName = new ArrayList<>();
ignoreTableName.add("test_xxx");
// 忽略表前缀,这些表不会在文档中生成
ArrayListignorePrefix = new ArrayList<>();
ignorePrefix.add("test_");
// 忽略表后缀,这些表不会在文档中生成
ArrayListignoreSuffix = new ArrayList<>();
ignoreSuffix.add("_test");
ProcessConfig processConfig = ProcessConfig.builder()
// 忽略表名
.ignoreTableName(ignoreTableName)
// 忽略表前缀
.ignoreTablePrefix(ignorePrefix)
// 忽略表后缀
.ignoreTableSuffix(ignoreSuffix).build();
// 配置
Configuration config = Configuration.builder()
// 版本
.version("1.0.0")
// 描述
.description("数据库说明文档")
// 数据源
.dataSource(dataSource)
// 生成配置
.engineConfig(engineConfig)
// 生成配置
.produceConfig(processConfig).build();
// 执行生成
new DocumentationExecute(config).execute();
}
}
生成结果如下
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧