springboot结合mybatis-plus快速生成项目模板的方法

目录
  • mybatis-plus简介:
  • 项目模板
    • 1、项目概览
    • 2、美化swagger-ui

mybatis-plus简介:

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。

项目模板

1、项目概览

项目结构

创建项目时,父项目用springboot,子项目用maven,父项目统一管理,子项目分模块

springboot父项目(子项目用maven建)
- common模块
- web模块
- .......

父项目pom.xml:统一管理版本

<properties>
    <!--java8-->
    <java.version>1.8</java.version>
    <!--mybatis-plus-->
    <mp.version>3.4.2</mp.version>
    <!--swagger-->
    <swagger.version>3.0.0</swagger.version>
    <!--velocity模板引擎-->
    <velocity.version>2.3</velocity.version>
    <!--java连接数据库-->
    <mysql-connect-java.version>8.0.25</mysql-connect-java.version>
    <!--velocity-->
    <velocity.version>2.3</velocity.version>
    <!--mybatis-plus-generator-->
    <mybatis-plus-generator.version>3.4.1</mybatis-plus-generator.version>
    <!--knife4j-->
    <knife4j.version>3.0.2</knife4j.version>
</properties>

<dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mp.version}</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${mybatis-plus-generator.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>${velocity.version}</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connect-java.version}</version>
        </dependency>

        <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
        </dependency>

    </dependencies>

</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

子项目pom.xml:公共模块(common)提取出来

<dependencies>

    <!--controller相关-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    </dependency>

    <!--代码生成器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
    </dependency>

    <!--swagger-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
    </dependency>

    <!--java连接数据库-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>

    <!--knife4j-->
    <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

子项目web模块pom.xml(直接引用common模块)

<dependencies>
    <dependency>
        <groupId>cn.jie</groupId>
        <artifactId>admin-base-common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

代码生成器

public class CodeGenerator {

    /**
     * <p>
     * 读取控制台内容
     * </p>
     */
    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输入" + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();
            if (StringUtils.isNotBlank(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = scanner("项目路径");
        //项目生成路径
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("sky");
        //打开资源管理器
        gc.setOpen(false);
        //开启swagger
        gc.setSwagger2(true);
        //覆盖文件
        gc.setFileOverride(false);

        gc.setServiceName("%sService");
        //主键自增
        gc.setIdType(IdType.AUTO);
        //java.util.date
        gc.setDateType(DateType.ONLY_DATE);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/adminweb?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8");
        // dsc.setSchemaName("public");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(scanner("模块名"));
        pc.setParent("cn.jie");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        pc.setController("controller");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        //表
        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
        //驼峰命名
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);

        //lombok
        strategy.setEntityLombokModel(true);
        //restful
        strategy.setRestControllerStyle(true);

        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);
        mpg.execute();
    }

}

springboot配置

spring:
  application:
    name: admin-base-web

  datasource:
    type:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/adminweb?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: root
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

server:
  port: 8081

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

  mapper-locations: classpath*:/mapper/*.xml

2、美化swagger-ui

swagger注意要用3.0.0版本

配置完swagger2config

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Config {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //.title("swagger-bootstrap-ui-demo RESTful APIs")
                        .description("物资管理系统API文档")
                        .termsOfServiceUrl("https://www.cnblogs.com/thatbluesky/")
                        .contact(new Contact("我的博客","https://www.cnblogs.com/thatbluesky/","1879186403@qq.com"))
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("1.0版本")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("cn.jie.system.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

}

访问:http://localhost:8081/doc.html

以上就是springboot结合mybatis-plus快速生成项目模板的方法的详细内容,更多关于springboot mybatis-plus项目模板 的资料请关注我们其它相关文章!

(0)

相关推荐

  • SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法

    简介: Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司用Mybatis-plus:自己新建了一个Springboot项目,代码运行时一直报错not found not found,明明配置了mybatis相关信息的扫描路径,但是就是not found:检查修改了很多地方但都是无用功,最终发现是Plus惹的祸. 1.使用Mybatis <dependency> <groupId>org.mybat

  • Springboot整合mybatis的步骤

    前期工作 1.导入mybatis整合依赖 <!-- mybatis整合 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> 2.连接数据库 3.连接完

  • 使用springboot整合mybatis-plus实现数据库的增删查改示例

    1.准备数据库中的表及表中的数据 /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.6.11 : Database - mp ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQ

  • SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建过程(后端)

    数据库准备 data_test.sql: /* SQLyog Enterprise v12.08 (64 bit) MySQL - 5.7.31 : Database - data_test ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_

  • SpringBoot使用mybatis步骤总结

    SpringBoot使用mybatis 1.导入 MyBatis 所需要的依赖 <!--mybatis-spring-boot-starter:整合--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version

  • springboot结合mybatis-plus快速生成项目模板的方法

    目录 mybatis-plus简介: 项目模板 1.项目概览 2.美化swagger-ui mybatis-plus简介: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网.那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA. 项目

  • 基于SpringBoot与Mybatis实现SpringMVC Web项目

    一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分,从而将技术或接口的实现细节隐藏起来. 从另一个角度上来看,结构上的分层往往也能促进了技术人员的分工,可以使开发人员更专注于某一层业务与功能的实现,比如前端工程师只关心页面的展示与交互效果(例如专注于HTML,JS等),而后端工程师只关心数据和业务逻辑的处理(专注于Java,Mysql等).两者之间

  • SpringBoot整合Mybatis Generator自动生成代码

    目录 1.创建SpringBoot项目 2. mybatis-generator-maven插件的配置 3. 项目结构构建 4. application.yml配置 5. generatorConfig.xml配置 7. 选择 Mybatis Generator 启动,自动在dao.entity.mapper包下生成代码 Mybatis是目前主流的ORM框架,相比于hibernate的全自动,它是半自动化需要手写sql语句.接口.实体对象,后来推出的Generator自动生成代码,可以帮我们提高

  • idea快速生成代码配置的方法示例

    前言 这里是用的goland idea,实际上这个idea和 intellij idea的配置是一样的,并没有太大区别, 开整 1.进入 File->settings->Editor->Live Templates 2.添加模板组 点击右上角的绿色+号,然后选择template group ,然后输入group的name,这个名字你随便起,我的是:my.然后点ok 属于你自己的组就创建好了 3. 添加模板 选中刚才创建的myGroup,然后再次点击右侧的绿色+,这次选择的是第一个1. L

  • golang包快速生成base64验证码的方法

    base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音模式. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base64编码可用于在HTTP环境下传递较长的标识信息, 直接把base64当成是字符串方式的数据就好了 减少了http请求:数据就是图片: 为APIs微服务而设计 为什么base64图片 for RESTful 服务 Data URIs 支持大部分浏览器,IE8之后也支持. 小图片使用base64响应对于

  • python由已知数组快速生成新数组的方法

    需求描述 在利用numpy进行数据分析时,常有的一个需求是:根据已知的数组生成新数组.这个问题又可以分为两类: 根据筛选条件生成子数组: 根据变换条件生成新数组(新数组shape与原数组相同) 下面简单总结. 生成子数组 情况1 已知数组a,以及若干筛选条件conds,要求从数组a中生成一个子数组b. 解决办法:b=a[conds].比如b=a[a>0],b=a[(a>=1)|(a<=-2)], b=a[(a>=1)&(a<=3)] 实例:如下 # 实例1.1:已知数

  • Laravel学习笔记之Artisan命令生成自定义模板的方法

    说明:本文主要讲述Laravel的Artisan命令来实现自定义模板,就如经常输入的php artisan make:controller ShopController就会自动生成一个ShopController.php模板文件一样,通过命令生成模板也会提高开发效率.同时,作者会将开发过程中的一些截图和代码黏上去,提高阅读效率. 备注:个人平时在写Repository代码时会这样写,如先写上ShopRepositoryInterface并定义好接口方法如all().create().update

  • Android单项绑定MVVM项目模板的方法

    0.前言 事情还要从上周和同事的小聚说起,同事说他们公司现在app的架构模式用的是MVP模式,但是并没有通过泛型和继承等一些列手段强制使用,全靠开发者在Activity或者Fragment里new一个presenter来做处理,说白了,全靠开发者自觉.这引发了我的一个思考,程序的架构或者设计模式的作用,除了传统的做到低耦合高内聚,业务分离,我觉得还有一个更重要的一点就是用来约束开发者,虽然使用某种模式或者架构可能并不会节省代码量,有的甚至会增加编码工作,但是让开发者在一定规则内进行开发,保证一个

  • 用PHP 快速生成 Flash 动画的方法

    使用 Ming 库动态构建 Flash 动画 Rich Internet Application 是 Web 2.0 中的新时髦词,并且就 Web 2.0 的实质而言,一个关键组件就是 Adobe Flash.了解如何将 Flash 动画集成到应用程序中,并使用 Ming 库动态生成 Flash 动画. Web 2.0 引入了 Rich Internet Application.但 Rich Internet Application 的含义是什么?通常,它意味着向应用程序中添加具有高度响应能力的

  • VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法

    1. 安装一个插件,识别vue文件 2.新建代码片段 文件–>首选项–>用户代码片段–>点击新建代码片段–取名vue.json 确定 3.粘贴入自己写的.vue模板 { "Print to console": { "prefix": "vue", "body": [ "<!-- $1 -->", "<template>", "<d

随机推荐