一个开发数据库,以下截取了部分表,实际中可能远不止这些
<!-- screw核心 --> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.3</version> </dependency> <!-- HikariCP --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency> <!--mysql driver--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
public class JdbcUtils { public static String DRIVER_NAME = "com.mysql.jdbc.Driver"; public static String JDBC_URL = "jdbc:mysql://IP:3306/tenant"; public static String USER_NAME = "zhangcy"; public static String PASSWORD = "zhangcy"; public static DataSource getDataSourceFonfig() { //数据源 HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName(DRIVER_NAME); hikariConfig.setJdbcUrl(JDBC_URL); hikariConfig.setUsername(USER_NAME); hikariConfig.setPassword(PASSWORD); //设置可以获取tables remarks信息 hikariConfig.addDataSourceProperty("useInformationSchema", "true"); hikariConfig.setMinimumIdle(2); hikariConfig.setMaximumPoolSize(5); return new HikariDataSource(hikariConfig); } public static Connection getConnection() { Connection conn = null; try { Class.forName(DRIVER_NAME).newInstance(); conn = java.sql.DriverManager.getConnection(JDBC_URL, USER_NAME, PASSWORD); return conn; } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 获取某个数据库下的所有表 * * @return */ public static List<String> getTablesNames() { List<String> tables = new ArrayList<>(); Connection connection = getConnection(); ResultSet rs = null; Statement st = null; try { st = connection.createStatement(); rs = st.executeQuery("show tables"); while (rs.next()) { String string = rs.getString(1); tables.add(string); } } catch (Exception e) { e.printStackTrace(); } finally { try { rs.close(); st.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } return tables; } }
public class GenerateDoc { /** * 生成的文档本地路径 */ public static final String LOCAL_PATH= "D:\\soft\\table"; public static void main(String[] args) { DataSource dataSource = JdbcUtils.getDataSourceFonfig(); EngineConfig engineConfig = EngineConfig.builder() //导出文件地址 .fileOutputDir(LOCAL_PATH) //是否打开文件夹 .openOutputDir(true) //文件类型:html、doc、mockdown .fileType(EngineFileType.WORD) //模板引擎 .produceType(EngineTemplateType.freemarker).build(); ProcessConfig processConfig = ProcessConfig.builder() //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 //根据名称指定表生成 .designatedTableName(JdbcUtils.getTablesNames()) //根据表前缀生成 .designatedTablePrefix(new ArrayList<>()) //根据表后缀生成 .designatedTableSuffix(new ArrayList<>()).build(); //设置生成pojo相关配置 Configuration config = Configuration.builder() .version("1.0.0") .description("数据库设计文档") .dataSource(dataSource) .engineConfig(engineConfig) .produceConfig(processConfig).build(); new DocumentationExecute(config).execute(); } }
本段方法中有大量得注释,解释如何生成数据库文档的步骤,以及各个配置参数的作用,拿到程序之后,只需运行main方法即可,注意,可以根据自己的需要,选择生成那种展示形式的文档,比如是本地的doc,或者markdown,或html都是可选的
本段以doc为例,运行main方法,观察结果:
打开数据库文档,基本来说,我们只需简单调整下整体的格式即可使用了
不妨再换一下,生成HTML格式的文件看看,修改下程序中的参数
观察结果:
The above is the detailed content of How to quickly generate database documents in java. For more information, please follow other related articles on the PHP Chinese website!