首页 > 数据库 >mysql表 自动生成word文档,java方式

mysql表 自动生成word文档,java方式

时间:2022-11-28 15:12:09浏览次数:71  
标签:screw word java ArrayList mysql 生成 import new hikariConfig

1、新建一个maven项目,并引入包

<!-- 导出文档包 -->
<dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.5</version> </dependency>

<!-- 数据库驱动 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.20</version>
</dependency>

2、新建一个类,MysqlDocumentGeneration,然后运行main方法就可以了

package com.mawan.system;

import java.util.ArrayList;

import javax.sql.DataSource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

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;

public class MysqlDocumentGeneration {
    
    public static void main(String[] args) {
        //数据源
           HikariConfig hikariConfig = new HikariConfig();
           hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
           hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database_name?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai");
           hikariConfig.setUsername("root");
           hikariConfig.setPassword("password");
           //设置可以获取tables remarks信息
           hikariConfig.addDataSourceProperty("useInformationSchema", "true");
           hikariConfig.setMinimumIdle(2);
           hikariConfig.setMaximumPoolSize(5);
           DataSource dataSource = new HikariDataSource(hikariConfig);
           //生成配置
           EngineConfig engineConfig = EngineConfig.builder()
                 //生成文件路径
                 .fileOutputDir("/Users/apple/Downloads")
                 //打开目录
                 .openOutputDir(true)
                 //文件类型
                 .fileType(EngineFileType.WORD)
                 //生成模板实现
                 .produceType(EngineTemplateType.freemarker)
                 //自定义文件名称
                 .fileName("mysql数据库设计").build();

           //忽略表
           ArrayList<String> ignoreTableName = new ArrayList<>();
           ignoreTableName.add("test_user");
           //忽略表前缀
           ArrayList<String> ignorePrefix = new ArrayList<>();
           ignorePrefix.add("test_");
           ignorePrefix.add("flyway-");
           //忽略表后缀    
           ArrayList<String> ignoreSuffix = new ArrayList<>();
           ignoreSuffix.add("_test");
           ProcessConfig processConfig = ProcessConfig.builder()
                 //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置    
                 //根据名称指定表生成
                 .designatedTableName(new ArrayList<>())
                 //根据表前缀生成
                 .designatedTablePrefix(new ArrayList<>())
                 //根据表后缀生成    
                 .designatedTableSuffix(new ArrayList<>())
                 //忽略表名
                 .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();
    }
}

 根据源文章改造:https://toscode.gitee.com/leshalv/screw

标签:screw,word,java,ArrayList,mysql,生成,import,new,hikariConfig
From: https://www.cnblogs.com/binz/p/16932241.html

相关文章

  • 2022-11-28 记录uniapp+小程序项目 如何上传excel、word、图片文件
    这里直接用到微信提供的api:wx.chooseMessageFile示例: wx.chooseMessageFile({  count:1,  success:(res)=>{   consttempFilePaths=res.te......
  • 整合SpringBoot + Dubbo + Nacos 出现 Unable to make protected final java.lang.Cla
    版本SpringBoot:2.7.3Dubbo:3.0.4Nacos:2.0.3异常信息如下Unabletomakeprotectedfinaljava.lang.Classjava.lang.ClassLoader.defineClass(java.lang.String,......
  • MySQL执行过程及执行顺序
    一、MySQL执行过程简单概括:1、我们在客户端发起一个SQL的查询;2、连接器判断用户登录以及用户权限;3、缓存命中,走缓存,直接返回查询结果;3、缓存没命中,到达分析器,对SQL语......
  • Net6 CodeFirst注入MySQL数据库上下文
    十年河东,十年河西,莫欺少年穷学无止境,精益求精 2022太难了,好多公司倒闭,互联网不景气,工作难找,苏州的C#/Net程序员的招聘更是少之又少,java,C,等其他语言也是供大于求,总之,难上......
  • mysql,在win10上绿色安装5.7版本
    1.下载地址,选择5.7的zip包https://downloads.mysql.com/archives/community/2.解压到自定义路径下我这里选择的路径D:\mysql手动创建了文件my.inimy.ini内容点击查......
  • 微软在动态语言支持上超越了Java?
    微软在宣布了动态语言运行时(DynamicLanguageRuntime,DLR)之后,到处都开始沸沸扬扬起来,Java领域也不能幸免。有不少人看起来已经相信,DLR使得.NET平台在和JV......
  • Java异常类
    什么是异常:在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及异常所处的位置)二、异常的继承关系:Throwable类是所有......
  • 【Web技术】188-[译] 现代 JavaScript 与 CSS 滚动实现指南
    编者按:本文由sea_ljf翻译并发表于众成翻译平台,原标题“滑向未来(现代JavaScript与CSS滚动实现指南)”一些(网站)滚动的效果是如此令人着迷但你却不知该如何实现,本文将为......
  • 【正则】174-《JavaScript 正则迷你书》知识点小抄本(下)
    四、正则表达式回溯法原理概念理解起来比较容易。比如用 ​​​/ab{1,3}c/​​ 去匹配下面两个字符串。当匹配 ​​abbbc​​,按顺序匹配,到了第3个 ​​b​​ 后,直接......
  • 【JS】165-JavaScript设计模式——工厂模式
    二、工厂模式(FactoryPattern)1.概念介绍工厂模式的目的在于创建对象,实现下列目标:可重复执行,来创建相似对象;当编译时位置具体类型(类)时,为调用者提供一种创建对象的接口;通过......