最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合screw實(shí)現(xiàn)數(shù)據(jù)庫(kù)文檔自動(dòng)生成的示例代碼

 更新時(shí)間:2020年09月22日 14:19:32   作者:周兆東  
這篇文章主要介紹了SpringBoot整合screw實(shí)現(xiàn)數(shù)據(jù)庫(kù)文檔自動(dòng)生成的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

有時(shí)候數(shù)據(jù)庫(kù)文檔需要整理,可是只能手動(dòng)的復(fù)制粘貼,心中一萬(wàn)只草泥馬奔騰而過(guò)。。。

screw

簡(jiǎn)潔好用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)文檔生成工具。

1. 創(chuàng)建項(xiàng)目

1.1 pom.xml

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.30</version>
</dependency>

<dependency>
  <groupId>cn.smallbun.screw</groupId>
  <artifactId>screw-core</artifactId>
  <version>1.0.5</version>
</dependency>

1.2 新建工具類DocumentConfig.java

/**
   * 文檔生成
   */
  static void documentGeneration() {
    //數(shù)據(jù)源
    HikariConfig hikariConfig = new HikariConfig();
    hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
    hikariConfig.setJdbcUrl("jdbc:mysql://IP地址:3306/數(shù)據(jù)庫(kù)名稱");
    hikariConfig.setUsername("用戶名");
    hikariConfig.setPassword("密碼");
    //設(shè)置可以獲取tables remarks信息
    hikariConfig.addDataSourceProperty("useInformationSchema", "true");
    hikariConfig.setMinimumIdle(2);
    hikariConfig.setMaximumPoolSize(5);
    DataSource dataSource = new HikariDataSource(hikariConfig);
    //生成配置
    EngineConfig engineConfig = EngineConfig.builder()
        //生成文件路徑
        .fileOutputDir("D:\\")
        //打開(kāi)目錄
        .openOutputDir(true)
        //文件類型
        .fileType(EngineFileType.HTML)
        //生成模板實(shí)現(xiàn)
        .produceType(EngineTemplateType.freemarker)
        //自定義文件名稱
        .fileName("test數(shù)據(jù)庫(kù)").build();

    //忽略表
    ArrayList<String> ignoreTableName = new ArrayList<>();
    ignoreTableName.add("test_user");
    ignoreTableName.add("test_group");
    //忽略表前綴
    ArrayList<String> ignorePrefix = new ArrayList<>();
    ignorePrefix.add("test_");
    //忽略表后綴
    ArrayList<String> ignoreSuffix = new ArrayList<>();
    ignoreSuffix.add("_test");
    ProcessConfig processConfig = ProcessConfig.builder()
        //指定生成邏輯、當(dāng)存在指定表、指定表前綴、指定表后綴時(shí),將生成指定表,其余表不生成、并跳過(guò)忽略表配置
        //根據(jù)名稱指定表生成
        .designatedTableName(new ArrayList<>())
        //根據(jù)表前綴生成
        .designatedTablePrefix(new ArrayList<>())
        //根據(jù)表后綴生成
        .designatedTableSuffix(new ArrayList<>())
        //忽略表名
        .ignoreTableName(ignoreTableName)
        //忽略表前綴
        .ignoreTablePrefix(ignorePrefix)
        //忽略表后綴
        .ignoreTableSuffix(ignoreSuffix).build();
    //配置
    Configuration config = Configuration.builder()
        //版本
        .version("1.0.0")
        //描述
        .description("數(shù)據(jù)庫(kù)設(shè)計(jì)文檔生成")
        //數(shù)據(jù)源
        .dataSource(dataSource)
        //生成配置
        .engineConfig(engineConfig)
        //生成配置
        .produceConfig(processConfig)
        .build();
    //執(zhí)行生成
    new DocumentationExecute(config).execute();
  }

1.3 運(yùn)行該方法

1.4 第二種生成配置

1.4.1 先在application.yml里面配置數(shù)據(jù)庫(kù)連接信息:

spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://IP地址:3306/數(shù)據(jù)庫(kù)名稱
  username: 用戶名
  password: 密碼
  xa:
   properties:
    useInformationSchema: true

1.4.2 新建test方法

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;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;

import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@SpringBootTest
public class ScrewApplicationTests {

  @Autowired
  ApplicationContext applicationContext;

  @Test
  void contextLoads() {
    DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);

    // 生成文件配置
    EngineConfig engineConfig = EngineConfig.builder()
        // 生成文件路徑,自己mac本地的地址,這里需要自己更換下路徑
        .fileOutputDir("D:\\")
        // 打開(kāi)目錄
        .openOutputDir(false)
        // 文件類型
        .fileType(EngineFileType.HTML)
        // 生成模板實(shí)現(xiàn)
        .produceType(EngineTemplateType.freemarker).build();

    // 生成文檔配置(包含以下自定義版本號(hào)、描述等配置連接)
    Configuration config = Configuration.builder()
        .version("1.0.0")
        .description("生成文檔信息描述")
        .dataSource(dataSourceMysql)
        .engineConfig(engineConfig)
        .produceConfig(getProcessConfig())
        .build();

    // 執(zhí)行生成
    new DocumentationExecute(config).execute();
  }


  /**
   * 配置想要生成的表+ 配置想要忽略的表
   * @return 生成表配置
   */
  public static ProcessConfig getProcessConfig(){
    // 忽略表名
    List<String> ignoreTableName = Arrays.asList("aa","test_group");
    // 忽略表前綴,如忽略a開(kāi)頭的數(shù)據(jù)庫(kù)表
    List<String> ignorePrefix = Arrays.asList("a","t");
    // 忽略表后綴
    List<String> ignoreSuffix = Arrays.asList("_test","czb_");

    return ProcessConfig.builder()
        //根據(jù)名稱指定表生成
        .designatedTableName(new ArrayList<>())
        //根據(jù)表前綴生成
        .designatedTablePrefix(new ArrayList<>())
        //根據(jù)表后綴生成
        .designatedTableSuffix(new ArrayList<>())
        //忽略表名
        .ignoreTableName(ignoreTableName)
        //忽略表前綴
        .ignoreTablePrefix(ignorePrefix)
        //忽略表后綴
        .ignoreTableSuffix(ignoreSuffix).build();
  }

}

1.4.3 運(yùn)行test方法生成

GitHub代碼地址:

github.com/zhouzhaodong/springboot/tree/master/spring-boot-screw

到此這篇關(guān)于SpringBoot整合screw實(shí)現(xiàn)數(shù)據(jù)庫(kù)文檔自動(dòng)生成的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot數(shù)據(jù)庫(kù)文檔自動(dòng)生成內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談log4j的rootLogger及其他坑爹的地方

    淺談log4j的rootLogger及其他坑爹的地方

    這篇文章主要介紹了log4j的rootLogger及其他坑爹的地方,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • eclipse的git插件安裝、配置與使用詳解

    eclipse的git插件安裝、配置與使用詳解

    這篇文章主要介紹了eclipse的git插件安裝、配置與使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 單一職責(zé)原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    單一職責(zé)原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了單一職責(zé)原則的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringSecurity自定義Form表單使用方法講解

    SpringSecurity自定義Form表單使用方法講解

    這篇文章主要介紹了Spring Security自定義Form表單使用方法,雖然 Spring Security 提供了默認(rèn)的登錄表單,實(shí)際項(xiàng)目里肯定是不可以直接使用的,當(dāng)然 Spring Security 也提供了自定義登錄表單的功能
    2023-01-01
  • SpringBoot異常處理器的使用與添加員工功能實(shí)現(xiàn)流程介紹

    SpringBoot異常處理器的使用與添加員工功能實(shí)現(xiàn)流程介紹

    設(shè)計(jì)完了登錄與退出功能還只完成了冰山一角,經(jīng)過(guò)測(cè)試發(fā)現(xiàn),我們以u(píng)rl的方式來(lái)訪問(wèn)網(wǎng)站時(shí)可以直接跳過(guò)登陸頁(yè)面進(jìn)入后臺(tái)頁(yè)面,這樣顯然是不合理的,下面我們通過(guò)異常攔截器+boot來(lái)做到訪問(wèn)限制,以及實(shí)現(xiàn)新增員工功能,制作全局異常處理器
    2022-10-10
  • Java 8對(duì)LinkedList元素進(jìn)行排序的方法詳解

    Java 8對(duì)LinkedList元素進(jìn)行排序的方法詳解

    在Java中,LinkedList是一種基于鏈表的數(shù)據(jù)結(jié)構(gòu),與ArrayList相比,它在進(jìn)行插入和刪除操作時(shí)表現(xiàn)出更好的性能,然而,LinkedList的元素排序也是開(kāi)發(fā)中常見(jiàn)的需求之一,本文介紹了Java8對(duì)LinkedList元素進(jìn)行排序的方法,需要的朋友可以參考下
    2024-11-11
  • 詳談spring中bean注入無(wú)效和new創(chuàng)建對(duì)象的區(qū)別

    詳談spring中bean注入無(wú)效和new創(chuàng)建對(duì)象的區(qū)別

    這篇文章主要介紹了spring中bean注入無(wú)效和new創(chuàng)建對(duì)象的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法

    java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法

    這篇文章主要介紹了java實(shí)現(xiàn)哈夫曼壓縮與解壓縮的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • java使用鏈表來(lái)模擬棧的入棧出棧操作實(shí)例代碼

    java使用鏈表來(lái)模擬棧的入棧出棧操作實(shí)例代碼

    這篇文章主要介紹了java 使用鏈表來(lái)模擬棧的入棧出棧操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java中BigDecimal用法詳解

    java中BigDecimal用法詳解

    本文詳細(xì)講解了java中BigDecimal的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

宜州市| 磴口县| 珲春市| 友谊县| 上饶市| 苍梧县| 资源县| 金门县| 霍邱县| 睢宁县| 吉隆县| 中阳县| 翁源县| 宕昌县| 西平县| 大庆市| 黔江区| 南部县| 阿勒泰市| 永清县| 东辽县| 松滋市| 青岛市| 铅山县| 绩溪县| 凌源市| 阿巴嘎旗| 岳阳市| 利津县| 本溪市| 青河县| 静海县| 泗阳县| 禹州市| 开江县| 襄樊市| 黔西| 荣昌县| 宝清县| 邻水| 来凤县|