In enterprise development, we often need to invest a lot of time in writing database documents, and for some historical projects, the lack of database documents brings great trouble to the later operation and maintenance and secondary development, so it is convenient to have a tool that can automatically generate database documents. screw is a database table structure document generation tool developed based on Java, which currently supports MySQL, Oracle, SqlServer, MariaDB, TIDB, PostareSQL, and CacheDB, and supports the generation of html, word, and markdown formats.
Quick to use:
Introduce dependencies
<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>${lastVersion}</version></dependency>
- Write code
/*** Document generation*/void documentGeneration() {//Data source: HikariConfig hikariConfig = new HikariConfig(); } hikariConfig.setDriverClassName(“com.mysql.cj.jdbc.Driver”); hikariConfig.setJdbcUrl(“jdbc:mysql://127.0.0.1:3306/database”); hikariConfig.setUsername(“root”); hikariConfig.setPassword(“password”); set to get tables remarks information hikariConfig.addDataSourceProperty(“useInformationSchema”, “true”); hikariConfig.setMinimumIdle(2); hikariConfig.setMaximumPoolSize(5); DataSource dataSource = new HikariDataSource(hikariConfig); Build Config EngineConfig engineConfig = EngineConfig.builder() // Build file path.fileOutputDir(fileOutputDir) // Open directory.openOutputDir(true) // filetype.fileType(EngineFileType.HTML) // Generate template implementation.produceType(EngineTemplateType.freemarker)//Custom file name.fileName(“custom file name”).build(); ignore the ArrayList<String> ignoreTableName = new ArrayList<>(); ignoreTableName.add(“test_user”); ignoreTableName.add(“test_group”); ignore the table prefix<String> ArrayList ignorePrefix = new ArrayList<>(); ignorePrefix.add(“test_”); ignore the table suffix<String> ArrayList ignoreSuffix = new ArrayList<>(); ignoreSuffix.add(“_test”); ProcessConfig processConfig = ProcessConfig.builder()//Specify the generation logic, when there is a specified table, a specified table prefix, a specified table suffix, the specified table will be generated, the rest of the tables will not be generated, and the ignore table configuration will be skipped//Specify the table based on the name to generate .designatedTableName(new ArrayList<>()))// Generate .designatedTablePrefix(new ArrayList<>()) based on table prefix // Generate .designatedTableSuffix(new ArrayList<>()) based on table suffix // Ignore table name.ignoreTableName(ignoreTableName) // Ignore table prefix .ignoreTablePrefix( ignorePrefix)//Ignore the table suffix.ignoreTableSuffix(ignoreSuffix).build(); Configuration config = Configuration.builder() // version.version(“1.0.0”) // description.description(“database design document generation”) // datasource.dataSource(dataSource) // generate configuration.engineConfig(engineConfig) // generate config.produceConfig(processConfig).build(); Execute the generaon of new DocumentationExecute(config).execute(); }ti
Screw’s support for some domestic databases such as Dameng and Renmin Jincang is still under development, and interested students can pay attention to the progress of the project. In addition, questions caused by some driver versions will also be answered in GitHub.