基于screw生成数据库文档
public class ScrewMain {
private static final String DRIVER_CLASSNAME = "org.postgresql.Driver";
private static final String DB_IP = "ip";
private static final String DB_PORT = "port";
private static final String DB_NAME = "db_name";
private static final String DB_SCHEMA = "db_schema";
private static final String DB_USERNAME = "username";
private static final String DB_PASSWORD = "password";
private static final String FILE_OUTPUT_DIR = "D:\\工作\\数据库文档";
private static final String TITLE = "title";
private static final String DB_URL = "jdbc:postgresql://" + DB_IP + ":" + DB_PORT;
private static final String JDBC_URL = DB_URL + "/" + DB_NAME;
private static final String DOC_DESCRIPTION = JDBC_URL + "?currentSchema=" + DB_SCHEMA;
private static final String DOC_FILE_NAME = DB_IP.replace(".", "-")
+ "-" + DB_PORT + "-" + DB_NAME + "-" + DB_SCHEMA + "-" + TITLE;
private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.HTML;
private static final EngineTemplateType TEMPLATE_TYPE = EngineTemplateType.freemarker;
public static final DateTimeFormatter DATETIMEFORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
Configuration config = Configuration.builder()
.title(TITLE)
.version(DATETIMEFORMATTER.format(localDateTime))
.description(DOC_DESCRIPTION)
.dataSource(buildDataSource())
.engineConfig(buildEngineConfig())
.build();
new DocumentationExecute(config).execute();
}
private static DataSource buildDataSource() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(DRIVER_CLASSNAME);
hikariConfig.setJdbcUrl(JDBC_URL);
hikariConfig.setUsername(DB_USERNAME);
hikariConfig.setPassword(DB_PASSWORD);
hikariConfig.setSchema(DB_SCHEMA);
return new HikariDataSource(hikariConfig);
}
private static EngineConfig buildEngineConfig() {
return EngineConfig.builder()
.fileOutputDir(FILE_OUTPUT_DIR)
.openOutputDir(false)
.fileType(FILE_OUTPUT_TYPE)
.produceType(TEMPLATE_TYPE)
.fileName(DOC_FILE_NAME)
.build();
}
}