freemarker生成word目录_Screw一键生成数据库文档

2acfa6e59f1d1c1d9c5025b7ad95bbb4.png
head

screw (螺丝钉) 英:[skruː] ~ 简洁好用的数据库表结构文档生成工具、

特点

•简洁、轻量、设计良好•多数据库支持•多种格式文档•灵活扩展•支持自定义模板

数据库支持

•MySQL•MariaDB•TIDB•Oracle•SqlServer•PostgreSQL•Cache DB

文档生成支持

•html•word•markdwon

配置

1、pom文件

•引入screw核心包,HikariCP数据库连接池,HikariCP号称性能最出色的数据库连接池。

    cn.smallbun.screw    screw-core    1.0.3    com.zaxxer    HikariCP    3.4.5    mysql    mysql-connector-java    8.0.20
2、screw 核心配置

screw有两种执行方式,

第一种是pom文件配置
                         org.springframework.boot            spring-boot-maven-plugin                            cn.smallbun.screw            screw-maven-plugin            1.0.3                                                                com.zaxxer                    HikariCP                    3.4.5                                                                    mysql                    mysql-connector-java                    8.0.20                                                                        root                                123456                                com.mysql.cj.jdbc.Driver                                jdbc:mysql://41.92.6.5:3306/fire                                MD                                false                                freemarker                                                                数据库文档生成                                ${project.version}                                fire数据库文档                                                            compile                                            run                                                            

配置完以后在 maven project->screw 双击执行ok。

ed9ebf0a05398c50d413a15371410f05.png

第二种是代码执行。
@SpringBootTestpublic class ScrewApplicationTests {    @Autowired    ApplicationContext applicationContext;    @Test    void contextLoads() {        DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);        // 生成文件配置        EngineConfig engineConfig = EngineConfig.builder()                // 生成文件路径,自己本机本地的地址,这里需要自己更换下路径                .fileOutputDir("D:/")                // 打开目录                .openOutputDir(false)                // 文件类型                .fileType(EngineFileType.HTML)                // 生成模板实现                .produceType(EngineTemplateType.freemarker).build();        // 生成文档配置(包含以下自定义版本号、描述等配置连接)        Configuration config = Configuration.builder()                .version("0.0.1")                .description("生成文档信息描述")                .dataSource(dataSourceMysql)                .engineConfig(engineConfig)                .produceConfig(getProcessConfig())                .build();        // 执行生成        new DocumentationExecute(config).execute();    }    /**     * 配置想要生成的表+ 配置想要忽略的表     *     * @return 生成表配置     */    public static ProcessConfig getProcessConfig() {        // 忽略表名        List<String> ignoreTableName = Arrays.asList("test", "test_group");        // 忽略表前缀,如忽略a开头的数据库表        List<String> ignorePrefix = Arrays.asList("a", "t");        // 忽略表后缀        List<String> ignoreSuffix = Arrays.asList("_test", "czb_");        return ProcessConfig.builder()                //根据名称指定表生成                .designatedTableName(Arrays.asList("fire_user"))                //根据表前缀生成                .designatedTablePrefix(new ArrayList<>())                //根据表后缀生成                .designatedTableSuffix(new ArrayList<>())                //忽略表名                .ignoreTableName(ignoreTableName)                //忽略表前缀                .ignoreTablePrefix(ignorePrefix)                //忽略表后缀                .ignoreTableSuffix(ignoreSuffix).build();    }}

生成文档格式在代码中的修改

.fileType(EngineFileType.MD)

或者pom文件

MD

生成样式

MD样式

01484550616c9b49127f4b6c1d9ed17d.png

HTML样式

4e16b1ff96e9f5bbb4a15565f309122b.png

常见问题

•生成后文档乱码?MySQL:URL加入?characterEncoding=UTF-8。•Caused by: java.lang.NoSuchFieldError: VERSION_2_3_30?检查项目freemarker依赖,这是由于版本过低造成的,升级版本为2.3.30即可。•java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.getSchema()Ljava/lang/String;这是因为oracle驱动版本过低造成的,删除或屏蔽目前驱动版本,驱动添加升级为以下版本:

<dependency>   <groupId>com.oracle.ojdbcgroupId>   <artifactId>ojdbc8artifactId>   <version>19.3.0.0version>dependency><dependency>   <groupId>cn.easyprojectgroupId>   <artifactId>orai18nartifactId>   <version>12.1.0.2.0version>dependency>

•MySQL数据库表和列字段有说明、生成文档没有说明?URL链接加入useInformationSchema=true即可。•java.lang.AbstractMethodError: com.mysql.jdbc.JDBC4Connection.getSchema()Ljava/lang/String;这是因为mysql驱动版本过低造成的,升级mysql驱动版本为最新即可。

项目地址

GITHUB[1]

GITEE[2]

References

[1] GITHUB: https://github.com/pingfangushi/screw[2] GITEE: https://gitee.com/leshalv/screw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值