日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

從數據庫表批量生成代碼

為了便于在研發過程中數據模型(數據庫表設計)變更后即時做代碼同步,BizWorks ToolKit插件集成了Mybatis-Plus代碼生成工具,支持從數據庫表生成代碼。本文介紹如何從數據庫表批量生成代碼,以及相應的配置說明和項目示例。

從數據庫表批量生成代碼的配置說明

重要

配置值需用半角雙引號("")包含。

BizWorks ToolKit插件使用配置文件(*.mp.yaml)的方式描述MyBatis-Plus代碼生成行為。通常這個配置文件只需配置一次,即可提交到代碼倉庫共享,便于沉淀維護庫表映射到代碼的規則。

配置文件在代碼中沒有預置,如果您需要使用可以在項目的任意位置新建,推薦您將其存放于src/main/resource/bizworks/mybatis-plus/路徑下。

說明

以下規則只符合平臺的MVC代碼模板,代碼模板不匹配情況不適用。generateAllCode默認值為false

  • 如果generateAllCode設置為true, 則會生成所有的代碼(controller,service,do,dto,mapper,impl..)。

  • 如果generateAllCode設置為false,則只會生成dao層代碼(mapper,do)。

最簡配置示例如下。

bizworks:
  generator:
    mybatisPlusFromDB:
      # 數據庫配置信息
      dataSource:
        url:
        username:
        password:
      global:
        # 指定輸出目錄,默認值: ${vcsRoot}/mybatis-plus-default/
          # ${vcsRoot} 為代碼倉庫根目錄
        outputDir: ${vcsRoot}/mybatis-plus-default/
      packageConfig:
        # 父包名,默認值:com.bizworks.example.domain.tunnel
        parent: com.bizworks.example.domain.tunnel
      strategy:
        generateAllCode: false
        # 配置需要生成的表,如果未配置,則生成數據庫下所有表
        includes:
          - "demo_table"

上述配置示例完善后即可生成demo_table對應的代碼。您也可以不配置以生成全表所有庫,或是配置更多緊密相關的表在一個文件同時生成,其他表則配置在其他文件中。

關于完整版配置示例,請參見生成代碼完整版配置

從數據庫表批量生成代碼

打開IDEA,您可以通過以下兩種方式從數據庫表批量生成代碼。

  • 在左側導航欄,右鍵單擊配置文件(*.mp.yaml)后,選擇BizWorks > Mybatis-Plus生成image.png

  • 在打開的配置文件(*.mp.yaml)中,單擊右鍵后,選擇BizWorks > Mybatis-Plus生成image.png

項目示例

  1. 如果您有一個多模塊項目,您可將配置文件放置于starter/resource/bizworks路徑下,例如下圖中simplification.mp.yaml1

  2. 右鍵單擊配置文件simplification.mp.yaml后,選擇從配置文件生成Mybatis-Plus

  3. 如果您只配置了數據庫信息,沒有配置輸出目錄以及需要生成的表(如第1步中的圖片所示)。IDEA則會根據默認輸出目錄輸出生成文件,且會將數據庫中所有表都生成,具體如下圖所示。

    默認輸出目錄:項目根目錄/mybatis-plus-default/com/bizworks/example/domain/tunnel1

  4. 如果您想將文件生成到某個模塊的某個包下,您可以配置輸出目錄以及Package進行準確位置的輸出,例如:通過配置includes進行準確文件的輸出。

    以步驟1圖中的項目為例,假設您想生成一個表到businessdomain-ninethreezerodomain\ninethreezerodomain-app路徑下,您可以通過配置outputDir以及packageConfig.parent進行生成輸出目錄的配置,如下代碼outputDirparent所示,配置includes進行表的選擇,具體請參見如下代碼示例。

    bizworks:
      generator:
        mybatisPlusFromDB:
          # 數據庫配置信息
          dataSource:
            url:
            username:
            password:
          global:
            # 指定輸出目錄,默認值: ${vcsRoot}/mybatis-plus-default/
              # ${vcsRoot} 為項目根目錄
            outputDir: ${vcsRoot}/businessdomain-ninethreezerodomain/ninethreezerodomain-app/src/main/java
          packageConfig:
            # 父包名,默認值:com.bizworks.example.domain.tunnel
            parent: ninegroup.generator.businessdomain.ninethreezerodomain.app.mybatisplus.generator
          strategy:
            generateAllCode: false
            # 配置需要生成的表,如果未配置,則生成數據庫下所有表
            includes:
              - "biz_modelcenter_app"
                            

    生成結果如下圖所示。1

  5. 如果您想了解更多的自定義配置,例如:是否啟用swagger,是否啟用lombokcontroller格式化命名等配置,請參見生成代碼完整版配置

生成代碼精簡版配置

生成代碼精簡版配置的代碼示例如下:

bizworks:
  generator:
    mybatisPlusFromDB:
      # 數據庫配置信息
      dataSource:
        url:
        username:
        password:
      global:
        # 指定輸出目錄,默認值: ${vcsRoot}/mybatis-plus-default/
        # ${vcsRoot} 為項目根目錄
        outputDir:
      packageConfig:
        # 父包名,默認值:com.bizworks.example.domain.tunnel
        parent:
      strategy:
        generateAllCode: false
        # 配置需要生成的表,如果未配置,則生成數據庫下所有表
        includes:
          - ""
            

生成代碼完整版配置

生成代碼完整版配置的代碼示例如下:

bizworks:
  generator:
    mybatisPlusFromDB:
      # 數據庫配置信息
      dataSource:
        url:
        username:
        password:
        schemaName: ""
      global:
        #    禁止打開輸出目錄    默認值:true,true = 不打開,false = 打開
        disableOpenDir: true
        #    指定輸出目錄 默認值: ${vcsRoot}/mybatis-plus-default/
          # ${vcsRoot} 為項目根目錄
        outputDir:
        #    作者名    默認值:BizWorks Toolkit
        author: BizWorks Toolkit
        #    開啟 kotlin 模式    默認值:false,false = 不開啟,true = 開啟
        enableKotlin: false
        #    開啟 swagger 模式    默認值:false,false = 不開啟,true = 開啟
        enableSwagger: false
        #    時間策略    DateType.ONLY_DATE 默認值: DateType.TIME_PACK
        dateType: TIME_PACK
        #    注釋日期    默認值: yyyy-MM-dd
        commentDate: yyyy-MM-dd
      packageConfig:
        # 父包名    默認值:com.bizworks.example.domain.tunnel
        parent:
        # 父包模塊名    默認值:無
        moduleName: ""
        # Entity 包名    默認值:entity
        entity: entity
        # Service 包名    默認值:service
        service: service
        # Service Impl 包名    默認值:service.impl
        serviceImpl: service.impl
        # Mapper 包名    默認值:mapper
        mapper: mapper
        # Mapper XML 包名    默認值:mapper.xml
        xml: mapper.xml
        # Controller 包名    默認值:controller
        controller: controller
        # 路徑配置信息 以xml為例:${vcsRoot}/模塊名/src/main/resources
        pathInfo:
          parent:
          entity:
          service:
          serviceImpl:
          mapper:
          xml:
          controller:
      template:
        # 啟用模板, list,不在此列的不會生成相關模板,默認開啟ENTITY,MAPPER  關閉SERVICE,SERVICE_IMPL,CONTROLLER,XML
        enable:
          - ENTITY
          - MAPPER
        #(String)    設置實體模板路徑(JAVA)    例:${vcsRoot}/templates/entity.java
        entity:
        #(String)    設置實體模板路徑(kotlin)    /templates/entity.java
        entityKt:
        #(String)    設置 service 模板路徑    /templates/service.java
        service:
        #(String)    設置 serviceImpl 模板路徑    /templates/serviceImpl.java
        serviceImpl:
        #(String)    設置 mapper 模板路徑    /templates/mapper.java
        mapper:
        #(String)    設置 mapperXml 模板路徑    /templates/mapper.xml
        mapperXml:
        #(String)    設置 controller 模板路徑    /templates/controller.java
        controller:
      strategy:
        generateAllCode: false
        #     開啟大寫命名    默認值:false
        enableCapitalMode: false
        #     開啟跳過視圖    默認值:false
        enableSkipView: false
        #     禁用 sql 過濾    默認值:true,語法不能支持使用 sql 過濾表的話,可以考慮關閉此開關
        disableSqlFilter: true
        #     啟用 schema    默認值:false,多 schema 場景的時候打開
        enableSchema: false
        # (LikeTable)    模糊表匹配(sql 過濾)    likeTable 與 notLikeTable 只能配置一項
        likeTable:
        # (LikeTable)    模糊表排除(sql 過濾)    likeTable 與 notLikeTable 只能配置一項
        notLikeTable:
        # (String...)    配置需要生成的表    includes 與 excludes 只能配置一項
        includes:
          - ""
        # (String...)    增加表排除匹配(內存過濾)    includes 與 excludes 只能配置一項
        excludes:
          - ""
        # (String...)    增加過濾表前綴
        tablePrefix:
          - ""
        # (String...)    增加過濾表后綴
        tableSuffix:
          - ""
        # (String...)    增加過濾字段前綴
        fieldPrefix:
          - ""
        # (String...)    增加過濾字段后綴
        fieldSuffix:
          - ""
        #     實體策略配置
        entity:
          #覆蓋已生成文件 默認false,false = 不覆蓋,true = 覆蓋
          enableFileOverride: false
          # (INameConvert)    名稱轉換實現
          nameConvert:
          # (String)    設置父類    com.baomidou.global.BaseEntity
          superClass:
          # 禁用生成 serialVersionUID    默認值:true,true = 不生成serID,false = 生成
          disableSerialVersionUID: true
          # 開啟生成字段常量    默認值:false
          enableColumnConstant: false
          # 開啟鏈式模型    默認值:false
          enableChainModel: false
          # 開啟 lombok 模型    默認值:true,true = 開啟,false = 不開啟
          enableLombok: true
          # 開啟 Boolean 類型字段移除 is 前綴    默認值:false
          enableRemoveIsPrefix: false
          # 開啟生成實體時生成字段注解    默認值:true
          enableTableFieldAnnotation: true
          # 開啟 ActiveRecord 模型    默認值:false
          enableActiveRecord: false
          # (String)    樂觀鎖字段名(數據庫)
          versionColumnName:
          # (String)    樂觀鎖屬性名(實體)
          versionPropertyName:
          # (String)    邏輯刪除字段名(數據庫)
          logicDeleteColumnName:
          # (String)    邏輯刪除屬性名(實體)
          logicDeletePropertyName:
          # 數據庫表映射到實體的命名策略    默認下劃線轉駝峰命名:NamingStrategy.underline_to_camel
          naming: underline_to_camel
          # 數據庫表字段映射到實體的命名策略    默認為 null,未指定按照 naming 執行
          columnNaming:
          # (String...)    添加父類公共字段
          superEntityColumns:
            - ""
            - ""
          # (String...)    添加忽略字段
          ignoreColumns:
            - ""
            - ""
          # (IdType)    全局主鍵類型
          idType:
          # (String)    格式化文件名稱
          formatFileName:
        #     controller 策略配置
        controller:
          #覆蓋已生成文件 默認false不覆蓋
          enableFileOverride: false
          # (String)    默認true 不生成controller
          disable: true
          # (String)    設置父類    com.baomidou.global.BaseController
          superClass: ""
          #     開啟駝峰轉連字符    默認值:false
          enableHyphenStyle: false
          #     開啟生成@RestController 控制器    默認值:false
          enableRestStyle: false
          # (String)    格式化文件名稱
          formatFileName:
        #     service 策略配置
        service:
          #覆蓋已生成文件 默認false不覆蓋
          enableFileOverride: false
          #(String)    設置 service 接口父類    com.baomidou.global.BaseService
          superServiceClass:
          #(String)    設置 service 實現類父類    com.baomidou.global.BaseServiceImpl
          superServiceImplClass:
          #(String)    格式化 service 接口文件s名稱
          formatServiceFileName:
          #(String)    格式化 service 實現類文件名稱
          formatServiceImplFileName:
        #     mapper 策略配置
        mapper:
          #覆蓋已生成文件 默認false不覆蓋
          enableFileOverride: false
          #(String)    設置父類     默認:com.baomidou.mybatisplus.core.mapper.BaseMapper
          superClass: "com.baomidou.mybatisplus.core.mapper.BaseMapper"
          #    開啟 @Mapper 注解    annotationClass – 注解Class 默認為 org.apache.ibatis.annotations.Mapper
          mapperAnnotation: org.apache.ibatis.annotations.Mapper
          #    啟用 BaseResultMap 生成    默認值:false
          enableBaseResultMap: false
          #    啟用 BaseColumnList    默認值:false
          enableBaseColumnList: false
          #(Class<? extends Cache>)    設置緩存實現類    MyMapperCache.class
          cache:
          #(String)    格式化 mapper 文件名稱
          formatMapperFileName:
          #(String) 格式化 xml 實現類文件名稱
          formatXmlFileName: