IntelliJ IDEA创建SpringBoot+MyBatis-plus项目 - 寒江孤影

IntelliJ IDEA创建SpringBoot+MyBatis-plus项目

作者: 铁憨憨

全网最全的网络资源分享网站

手机扫码查看

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

教程演示环境

IntelliJ IDEA 2020.3.3 x64中文插件汉化版Navicat Premium 15apache-maven-3.6.3jdk1.8.0_191MySQL5.7SpringBoot 2.3.7MyBatis-PlusPostman中文汉化版

本教程需要先配置Maven才能创建项目

QQ截图20210401234917.png

第一步创建

1.首先点击新建项目,左侧选择 Spring Initializr ,在右侧界面的 启动服务URL 选择自定义 采用阿里云镜像 https://start.aliyun.com 点击下一步

QQ截图20210319103100.png

2.组名使用默认 com.example.springbootmybatisplus 工件名 springbootmybatisplus 选择下一步

QQ截图20210328201724.png

3.依赖选择 LombokSpring WebJDBC APIMyBatis FrameworkMyBatis Plus FrameworkMySQL Driver 选择下一步,完成

QQ截图20210329004438.png

4.项目结构如下

QQ截图20210328202201.png

第二步测试

1.首先打开 Navicat 创建一个 userinfo 表 id 主键自增

QQ截图20210324224516.png

2.建表语句如下,PS建表语句执行完不要忘记刷新

CREATE TABLE userinfo  (
  id int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  user varchar(255) NULL DEFAULT NULL COMMENT '用户名',
  pwd varchar(255) NULL DEFAULT NULL COMMENT '密码',
  PRIMARY KEY (id) USING BTREE
);
INSERT INTO userinfo VALUES (null, 'admin', '123456');
INSERT INTO userinfo VALUES (null, 'test', '888888');

3.修改pom.xml的依赖,PS首先说明一下 com.mysql.cj.jdbc.Driver 是MySQL8.0的驱动 使用 MySQL5.7 需要改成 com.mysql.jdbc.Driver,找到 <groupId>mysql</groupId> 的依赖加个版本号<version>5.1.47</version>

代码如下,在pom.xml中找到这个依赖替换即可

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

4.添加 代码生成器 依赖,修改pom.xml的依赖,在<dependencies>标签下添加如下代码

<!--代码生成器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
<!--Freemarker引擎模板-->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
</dependency>

5.修改配置文件 application.properties

QQ截图20210328203904.png

# 应用名称
spring.application.name=springbootmybatisplus
# 应用服务 WEB 访问端口
server.port=8080
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mapper/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-package=com.example.springbootmybatisplus.springbootmybatisplus.entity
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/springbootmybatis
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456

6.在 com.example.springbootmybatisplus.springbootmybatisplus 包下新建类文件 CodeGenerator.java 代码如下

package com.example.springbootmybatisplus.springbootmybatisplus;

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {

    public static final String DB_URL = "jdbc:mysql://localhost:3306/springbootmybatis";//数据库链接
    public static final String DB_DRIVER_NAME = "com.mysql.jdbc.Driver";
    public static final String DB_USER_NAME = "root";//账号
    public static final String DB_PASSWORD = "123456";//密码
    public static final String BASE_PACKAGE_PATH = "com.example.springbootmybatisplus.springbootmybatisplus";//包地址

    /**
     * <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 = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("36D小可爱");
        gc.setOpen(false);
        // gc.setSwagger2(true); 实体属性 Swagger2 注解
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(DB_URL);
        // dsc.setSchemaName("public");
        dsc.setDriverName(DB_DRIVER_NAME);
        dsc.setUsername(DB_USER_NAME);
        dsc.setPassword(DB_PASSWORD);
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(scanner("模块名"));
        pc.setParent(BASE_PACKAGE_PATH);
        mpg.setPackageInfo(pc);

        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 如果模板引擎是 velocity
        // String templatePath = "/templates/mapper.xml.vm";

        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName() + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        /*
        cfg.setFileCreate(new IFileCreate() {
            @Override
            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
                // 判断自定义文件夹是否需要创建
                checkDir("调用默认方法创建的目录,自定义目录用");
                if (fileType == FileType.MAPPER) {
                    // 已经生成 mapper 文件判断存在,不想重新生成返回 false
                    return !new File(filePath).exists();
                }
                // 允许生成模板文件
                return true;
            }
        });
        */
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);

        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();

        // 配置自定义输出模板
        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
        // templateConfig.setEntity("templates/entity2.java");
        // templateConfig.setService();
        // templateConfig.setController();

        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        //strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        // 公共父类
        //strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
        // 写于父类中的公共字段
        //strategy.setSuperEntityColumns("id");
        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }

}

7.右键运行 CodeGenerator.java 文件

QQ截图20210329122432.png

8.在生成的 UserinfoMapper.java 文件,添加 @Mapper 注解

QQ截图20210329003816.png

9.也可以对整个Mapper进行扫描在 SpringbootmybatisplusApplication

加入 @MapperScan("com.example.springbootmybatisplus.springbootmybatisplus.test.mapper")

QQ截图20210331103347.png

第二步运行测试项目

1.打开 SpringbootmybatisplusApplication 界面右键运行或者点击右上角的绿色倒三角启动。

QQ截图20210329004211.png

控制台打印 Spring Mybatis-Plus 则项目运行成功

QQ截图20210329005205.png

save方法 插入一条记录

QQ截图20210329012818.png

测试工具 Postman中文汉化版

Postman工具测试接口,接口传入实体类

QQ截图20210329012646.png

添加一条数据成功

QQ截图20210329013217.png

saveOrUpdate方法 更新一条记录

QQ截图20210329123042.png

Postman工具测试接口,接口传入实体类

QQ截图20210329123400.png

修改了id等于1的密码

QQ截图20210329123543.png

removeById方法 据Id删除

QQ截图20210329151039.png

Postman工具测试接口,接口传入idQQ截图20210329151249(1).png

删除了id为2的数据

QQ截图20210329151501.png

updateById 根据ID 更新

QQ截图20210329170211.png

Postman工具测试接口,接口传入实体类

QQ截图20210329170416.png

修改了一条数据

QQ截图20210329170538.png

getById方法 根据ID查询

QQ截图20210329172644.png

Postman工具测试接口,接口传入id

QQ截图20210329172855.png

list方法 查询所有

QQ截图20210329175551.png

Postman工具测试接口,无参数

QQ截图20210329175732.png

page方法 分页

分页前需要先配置Mybatis-Plus分页插件才能使用

在test包下创建config文件夹,创建 MybatisPlusConfig.java 类文件代码如下

package com.example.springbootmybatisplus.springbootmybatisplus.test.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }
}

QQ截图20210329195123.png

page方法 无条件分页查询

QQ截图20210329193344.png

Postman工具测试接口,传入分页

QQ截图20210329195409.png

count 方法 查询总记录数

QQ截图20210329203018.png

Postman工具测试接口

QQ截图20210329203314.png

了解更多Mybatis-Plus方法 点击Mybatis-Plus Service CRUD 接口实例

分享到:
打赏
-版权声明-

作者: 铁憨憨, 转载或复制请以 超链接形式 并注明出处 寒江孤影
原文地址: 《IntelliJ IDEA创建SpringBoot+MyBatis-plus项目》 发布于2021-3-26

阅读时间:   发布于:2021-3-26
文章标题:《IntelliJ IDEA创建SpringBoot+MyBatis-plus项目》
本文链接:https://a14.cn:443/post-14.html
本文编辑: 铁憨憨,转载请注明超链接和出处寒江孤影
收录状态:[百度已收录][360已收录][搜狗已收录]

评论一下

切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

IntelliJ IDEA创建SpringBoot+MyBatis-plus项目

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

花呗扫一扫打赏

微信扫一扫打赏

企鹅扫一扫打赏

召唤伊斯特瓦尔