「案例DEMO」直接用maven插件生成springboot2.5.4+mybatis-plus3.5.3.2+hikari+swagger2 2.9.2项目并运行

发布时间 2023-09-17 18:00:10作者: Java夜未眠

mybatis-plus-code-maven-plugin-demo

项目演示如何使用mybatis-plus-code-maven-plugin插件生成项目

demo: https://gitee.com/javalaoniu/mybatis-code-maven-plugin-demo
插件: https://gitee.com/javalaoniu/mybatis-plus-code-maven-plugin

生成的项目介绍

项目特点:

  • 单表增删改查功能,并实现批量插入更新删除功能;
  • hikari为springboot推荐的数据库连接池,据说性能还可以;
  • json格式化主要使用jackson框架,并处理时间返回格式问题,该框架也是springboot推荐,个人不喜欢fastjson、gson;
  • 多环境配置;
  • slf4j1.7.26+logback1.2.3,并添加xxx-over-slf4j包,把其他日志转化到slf4j;
  • 统一异常捕获;
  • 统一返回对象;
  • 日志打印根据spring.profiles.active: xxx配置自动使用相应的日志打印,并且配合在各环境文件中配置logging开关或者打印级别,更好的控制日志打印;
  • swagger2 api文档,可以直接根据配置是否生效,并且有多一套美化皮肤;

项目说明

  • AppApplication为项目启动入口类

  • config文件夹存放项目配置类,主要包含MybatisPlusConfig、SwaggerConfig配置类,旧项目可以不用拷贝该文件夹及文件;

  • controller文件夹存放项目控制器类,对应表的增删改查、批量操作等接口;

  • service文件夹存放业务接口类;

  • service.impl文件夹存放service的实现类,类中部分字段如果表中没有需要自己手动修改;

  • mapper文件夹存放dao数据操作类,主要是myabtis的接口类文件,实现由mybatis生成;

  • entity文件夹存放实体类,po对应数据库表字段、vo对应前端(model)、dto为数据传输对象(DTO类,多用于处理po和vo之间的关系,大致有时候也可以和vo相同。PO接收数据库的数据,然后转成DTO,DTO再转成VO(有时候为了偷懒,直接把DTO当成VO就不再转一层直接返回给前端)。在我的项目中没有使用dto对象,直接使用了vo对象和po进行转换,很多时候并不会区分那么多,不需要在意这个);

  • utils文件夹存放工具类

  • resources中的mapper存放mybatis对应的xml文件

  • resources中的application.yml项目配置文件(最先加载)

  • resources中的application-mp.yml是mybatis配置文件

  • resources中的logback-spring.xml是日志配置文件

复制说明
正常情况下,当作新项目可以整个代码当作新项目用;
如果已有项目的情况,必须复制的有resources中的mapper、mapper、entity三个文件夹中的文件,这是mybatis最基本的,直接拷贝这些文件到已有项目即可直接使用,避免手写错误问题,当然得是已有项目本身是整合好mybatis的,
其他的工具类、controller、service等自己看着办就好了。

具体步骤

看了上面的介绍之后相信你大概了解了生成的项目,你是不是也想可以一键生成自己的项目呢?这里就演示如何生成这个项目和运行项目,然后访问项目api。这样可以节省每次创建项目、配置项目、整合框架的时间。

1. 创建项目

可以用idea创建项目的方式,也可以手动创建mybatis-code-maven-plugin-demo文件夹,在文件夹中新建pom.xml文件,文件所有内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>mybatis-code-maven-plugin-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>mybatis-code-maven-plugin-demo</name>
    
</project>
用idea打开项目,项目结构如下,pom.xml文件外的其他文件是项目的常规文件,也可以忽略,

在这里插入图片描述

2. 配置插件

打开怕pom.xml文件,添加mybatis-plus-code-maven-plugin插件,并修改相应的配置(项目保存路径、模块名称、mysql库配置、包名等)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>mybatis-code-maven-plugin-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>mybatis-code-maven-plugin-demo</name>

    <build>
        <finalName>mybatis-code-maven-plugin-demo</finalName>
        <plugins>
            <plugin>
                <groupId>io.gitee.javalaoniu</groupId>
                <artifactId>mybatis-plus-code-maven-plugin</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <configuration>
                    <!--生成代码保存路径,默认保存在项目目录的target目录下-->
                    <savePath>D:\Workspace\ideaIC-2023.1.win.Project\mybatis-code-maven-plugin-demo</savePath>
                    <!--项目(模块)名,也是包名的一部分(com.example.demotest)-->
                    <moduleName>mydemo1</moduleName>
                    <!--每次生成的文件覆盖已有文件,谨慎使用-->
                    <fileOverride>false</fileOverride>

                    <dbSetting>
                        <url>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8&amp;tinyInt1isBit=false</url>
                        <username>root</username>
                        <pwd>root123456</pwd>
                        <!--表面的前缀,不填可以留空-->
                        <tablePrefix>t_</tablePrefix>
                        <tables>t_sys_role,t_sys_user</tables>
                    </dbSetting>

                    <!--
                    controller、service、mapper、entity包名(文件夹)设置,这些类最终包名(groupPackage+moduleName+自己),下面设置和默认设置一样
                    xml为mybatis的xml文件存放文件夹(默认放在resources下)
                    -->
                    <packageSetting>
                        <!--生成代码Java类包名的前部分-->
                        <parent>com.example</parent>
                        <entity>entity</entity>
                        <mapper>mapper</mapper>
                        <service>service</service>
                        <serviceImpl>service.impl</serviceImpl>
                        <controller>controller</controller>
                        <xml>mapper</xml>
                    </packageSetting>

                    <!--
                    策略配置,一般不用配置,除非很特殊,必须要配置
                    entitySuperClass: 自己的实体类的父类全路径,实体类po会直接继承改类,一般不设置;
                    controllerSuperClass: 自己的controller类的父类全路径,controller类会直接继承该类,一般不设置
                    -->
                    <!--
                    <strategySetting>
                        <entitySuperClass>aa.MyEntityParent</entitySuperClass>
                        <controllerSuperClass>aa.MyControllerParent</controllerSuperClass>
                    </strategySetting>
                    -->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

3. 生成项目

添加mybatis-plus-code-maven-plugin插件后,刷新一下工程,确保项目已经把mybatis-plus-code-maven-plugin插件引入到项目中,打开idea的maven工具栏
在这里插入图片描述

双击插件,我这里配置的项目生成路径就是当前项目下,所以双击命令后生成的代码如下:
在这里插入图片描述

4. 添加模块

在这里插入图片描述

在这里插入图片描述

5. 运行生成的项目

在这里插入图片描述

6. 访问api

在这里插入图片描述

在这里插入图片描述