mybatis-plus自动生成代码的调用用法(mybatisplus批量新增)

一、介绍本教程将介绍如何使用mybatis-plus工具自动给我们生成Controller、Service、Entity、Mapper、Mapper.xml层代码要求:①生成的Controller类,需要继承BaseController②生成的Entity类,需要继承BaseEntity③生成的Service,默认名称下是以I开头的接口,在生成Se…

大家好,又见面了,我是你们的朋友全栈君。

一、介绍

本教程将介绍如何使用 mybatis-plus 工具自动给我们生成 Controller、Service、Entity、Mapper、Mapper.xml 层代码

要求:

① 生成的Controller类,需要继承 BaseController

② 生成的Entity 类,需要继承 BaseEntity 

③ 生成的 Service,默认名称下是以 I 开头的接口, 在生成Service层代码中需要把这个 I 去掉

二、实现步骤

① 在数据库中创建好 数据库 与 要生成代码对应的表

这里拿 user 表举例

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
);

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

② 创建 一个SpringBoot 项目,其中 pom.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.11.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.lcy</groupId>
    <artifactId>mybatis-plus-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis-plus-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.1</version>
        </dependency>
    </dependencies>

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

</project>

③、BaseController 和  BaseEntity 类

package com.lcy.demo.sys.controller;

public class BaseController {
}


package com.lcy.demo.sys.entity;

public class BaseEntity {
}

④、 创建代码生成类

package com.lcy.demo.generator;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class MysqlGenerator {


    public static void main(String[] args) {
        AutoGenerator mpg = new AutoGenerator();
        //1、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
        gc.setAuthor("liangcy"); //设置作者
        gc.setOpen(false);
        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
        gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
        gc.setBaseResultMap(true); //生成resultMap
        mpg.setGlobalConfig(gc);

        //2、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatis-plus-demo?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        mpg.setDataSource(dsc);

        // 3、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("sys");
        pc.setParent("com.lcy.demo");
        mpg.setPackageInfo(pc);

        // 4、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setSuperControllerClass("com.lcy.demo.sys.controller.BaseController");
        strategy.setSuperEntityClass("com.lcy.demo.sys.entity.BaseEntity");
        // strategy.setTablePrefix("t_"); // 表名前缀
        strategy.setEntityLombokModel(true); //使用lombok
        strategy.setInclude("user");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
        mpg.setStrategy(strategy);

        //5、执行
        mpg.execute();
    }

}

补充说明:

  • 代码生成过程中用到了 Lombok 插件, 因此需要在IDEA 中安装好 Lombok插件
  • 如果我们删除了生成的代码, 包名可能会飘红, 这时我们需要 更新一下maven工程,飘红就会消失
  • 代码将生成在我们设置的 父包名 + 模块名中

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128470.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python入门习题(40)——CCF CSP认证考试真题:报数游戏「建议收藏」

    Python入门习题(40)——CCF CSP认证考试真题:报数游戏「建议收藏」CCFCSP认证考试真题(201712-2):游戏问题描述解题思路参考答案测试用例小结问题描述试题编号: 201712-2试题名称: 游戏时间限制: 1.0s内存限制: 256.0MB问题描述  有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。  游戏开始,从1…

  • pve安装docker图形化_怎么安装docker

    pve安装docker图形化_怎么安装docker基本相当于转载,但我光贴图也不行啊,还是把步骤加上去年年底这NUC到手时,就装PVE练手,然而最后做主力挂机的是那会买的个1037U小主机当时就尝试过装LibreELEC,结果是接显示器黑屏不过后来我直接在宿主机上装桌面和Kodi,但是吧那源里的Kodi是17的对于x265是软解。。。怎么装当然是看的值得买上的这个人家是OMV咱这是PVE都是装桌面再装KODI,但是为了保持纯净的PVE所以才想直通…

    2022年10月30日
  • JS美女图片切换带视觉差

    使用JS实现,多张图片动态切换查看效果:http://hovertree.com/texiao/js/21/效果图:转自:http://hovertree.com/h/bjaf/iamhxcyk.h

    2021年12月22日
  • icmp回复报文_常见的ICMP报文

    icmp回复报文_常见的ICMP报文常见的ICMP报文相应请求我们用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。过程:一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。目标不可达,源抑制和超时报文这三种报文的格式是一样的。(1)目标不可到达报文(类型值为3…

  • taskscheduler java_java – taskScheduler池的奇怪行为「建议收藏」

    taskscheduler java_java – taskScheduler池的奇怪行为「建议收藏」我有两个弹簧启动应用程序(1.4.3.RELEASE),它们位于同一台服务器上.应用程序A是一个单一的应用程序,其中包含用于处理警报的部分代码,而应用程序B是一个仅处理警报的新专用应用程序.这里的目标是打破小应用程序中的monolotic应用程序.现在,这两个代码一起运行,因为我有旧系统,总是调用应用程序A.这两个应用程序有一个基于ThreadPoolTask​​Scheduler配置的taskS…

    2022年10月11日
  • cad注释比例和打印比例不一样_cad注释比例(cad注释比例与打印比例)

    cad注释比例和打印比例不一样_cad注释比例(cad注释比例与打印比例)这两个比例有什么区别分别代表的是什么意思麻烦说详细点谢谢是物体被缩小了50倍后的图形这两个比例。但是一张图纸不允许出现两个或以上的比例(局部放大除外),但是标注的数字是实际尺寸,两个没有区别画的是800*500mm的线,注释比例用的1:1,这样是不是不行?我的标注字体.注释比例就是按图框大小来标注的,比如将1:1的图框放大到1:5,那么就选择1:5大小的注释比例,当然注释比例是你事先设置好的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号