前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >MyBatisPlus 自动生成代码

MyBatisPlus 自动生成代码

作者头像
xdd
发布于 2022-07-12 06:37:24
发布于 2022-07-12 06:37:24
1.4K00
代码可运行
举报
文章被收录于专栏:java技术鸡汤java技术鸡汤
运行总次数:0
代码可运行

本篇主要介绍如何使用MybatisPlus自带的generator模块来生成entity、service、serviceImpl、mapper、mapperXml等,以此来提高开发效率。

1、引入相关依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--   数据库驱动依赖 如果你是mysql数据库就需要替换为mysql驱动        -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.3.3</version>
</dependency>
<!--   freemarker驱动依赖         -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>
<!--   mp驱动依赖         -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<!--   mp generator驱动依赖         -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>

2、写一个java类,增加一个main方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.mybatisplus;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.po.LikeTable;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.Collections;

/**
 * @author lee
 * @version 1.0
 * @description 描述
 * @date 2022/06/13
 */
public class MPGenerateCode {

    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:postgresql://localhost:3306/dbname", "name", "password")
                .globalConfig(builder -> {
                    builder.author("lee") // 设置作者
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("/Users/yongyongli/work"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.xxx.xxx.xx.xx") // 设置父包名
                            .moduleName("dao") // 设置父包模块名
                            .entity("model")
                            .service("repository")
                            .serviceImpl("repository.impl")
                            .mapper("mapper")
                            .xml("mapper.xml")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "/Users/yongyongli/work/generator")); // 设置mapperXml生成路径
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板

                .strategyConfig(builder->{
                    builder.likeTable(new LikeTable("msg_"));// 匹配以msg开头的表
//                            .addInclude("t_simple") // 设置需要生成的表名
//                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                    builder.entityBuilder()
//                            .superClass(BaseEntity.class) // 设置父类
                            .disableSerialVersionUID()
//                            .enableChainModel() // 开启驼峰转连字符
                            .enableLombok()
                            .enableRemoveIsPrefix() //开启 Boolean 类型字段移除 is 前缀
                            .enableTableFieldAnnotation()// 开启生成实体时生成字段注解
//                            .versionColumnName("version")// 乐观锁字段名(数据库)
//                            .versionPropertyName("version")// 乐观锁属性名(实体)
                            .logicDeleteColumnName("delete_flag")// 逻辑删除字段名(数据库)
                            .logicDeletePropertyName("deleteFlag")// 逻辑删除属性名(实体)
                            .naming(NamingStrategy.underline_to_camel)// 数据库表映射到实体的命名策略
                            .columnNaming(NamingStrategy.underline_to_camel)// 数据库表字段映射到实体的命名策略
                            .addTableFills(new Column("create_time", FieldFill.INSERT),// 这些都是通用字段
                                    new Column("creator", FieldFill.INSERT),
                                    new Column("delete_flag", FieldFill.INSERT),
                                    new Column("modify_time", FieldFill.INSERT_UPDATE),
                                    new Column("modifier", FieldFill.INSERT_UPDATE)
                            )
                            .idType(IdType.AUTO)
                            .formatFileName("%sDO")
                            .build();
                    builder.serviceBuilder().formatServiceFileName("%sDao")
                            .formatServiceImplFileName("%sDaoImpl")
                            .build();
                    builder.mapperBuilder().formatMapperFileName("%sMapper")
                            .formatXmlFileName("%sXml")
                            .build();
                })
                .execute();
    }
}

欢迎大家尝试使用MP官方推荐的方式来提效。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术鸡汤 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
五.SpringBoot配置自动生成代码
简介:AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
十分钟空间
2022/08/17
1.7K0
五.SpringBoot配置自动生成代码
搭建单体SpringBoot项目 集成MybatisPlus代码生成
郭顺发
2023/07/17
3150
MybatisPlus——全网配置最全的代码生成器
官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)
不吃紫菜
2022/09/23
3.5K0
MybatisPlus——全网配置最全的代码生成器
Mybatis-Plus代码生成器新版配置
https://github.com/baomidou/generator/tree/develop/mybatis-plus-generator/src/main/resources/templates
4xx.me
2022/06/10
7280
Mybatis-Plus代码生成器新版配置
Mybatis-plus代码生成器
环境:mysql8.0.24、mybatis-plus3.5.3.1、springboot3.1.0
chao超的搬运文章
2023/10/15
6310
Mybatis-plus代码生成器
MyBatis-Plus代码生成器-V3.5.4
希里安
2023/10/30
4700
MyBatis-Plus代码生成器-V3.5.4
SpringBoot教程(十三) | SpringBoot集成MybatisPlus
MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
一缕82年的清风
2022/04/08
4.5K1
SpringBoot教程(十三) | SpringBoot集成MybatisPlus
MyBatisPlus一文通关
话不多说,我们先来看一张简单的思维导图,了解一下 MP 的主要核心功能,脑图在手,思路我有,开干🤔!
程序员Leo
2023/09/09
5620
MyBatisPlus一文通关
mybatis plus代码生成器使用(60plus)
大家好,又见面了,我是你们的朋友全栈君。 1.引入依赖: <!--mybatisPlus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version> </dependency> <!--mybatis-plus代码生成器--> <dependency> <groupId>com.b
全栈程序员站长
2022/07/29
4470
mybatis plus代码生成器使用(60plus)
Spring-Boot 使用 mybatis-plus-gennretor代码生成器生成代码+分页插件
可以参考官网(https://mp.baomidou.com/guide/page.html)
用户5927264
2019/07/31
1.1K0
Mybatis-Plus代码生成器
重点:获取项目的绝对路径 更多配置请看官方 System.getProperty("user.dir") 下面是依赖: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1.tmp</version> </dependency> <dependency> <groupId>org.apache.velocity</g
乐心湖
2020/07/31
1.4K0
MyBatisPlus代码生成器
官网地址:https://baomidou.com/pages/779a6e/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8
默 语
2024/11/20
1040
MyBatisPlus代码生成器
MyBatus-Plus保姆级快速上手教程
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
小熊学Java
2022/09/04
5710
SpringBoot 集成 MybatisPlus 十二——代码生成器
如果不愿意手动编写和数据表对应的实体类及相关映射文件,MybatisPlus为我们提供了相关的效率提升工具(偷懒神器)——代码生成器,它可以读取数据库中的表信息,生成相应的可以供我们使用 MybatisPlus 代码。
用户8100582
2023/11/17
8630
mybatis-plus代码生成器使用(generator)
首先在springboot项目中引入mybatis plus、mybatis plus generator的依赖,如下所示:
魚迹
2023/05/06
1.1K0
SpringBoot整合MyBatis-Plus实现分页,代码生成,锁等实例
Mybatis-Plus是一款专门针对于传统MyBatis开发中sql需要手动进行映射配置繁琐缺点的一款框架技术,这款框架技术提供了十分丰富的api供开发者们使用,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
用户7353950
2022/06/23
1.7K0
SpringBoot整合MyBatis-Plus实现分页,代码生成,锁等实例
MybatisPlus代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
别团等shy哥发育
2023/02/25
8790
MybatisPlus代码生成器
进阶!MyBatis-Plus(基于 Springboot 演示)
这一篇从一个入门的基本体验介绍,再到对于 CRUD 的一个详细介绍,在介绍过程中将涉及到的一些问题,例如逐渐策略,自动填充,乐观锁等内容说了一下,只选了一些重要的内容,还有一些没提及到,具体可以参考官网,简单的看完,其实会发现,如果遇到单表的 CRUD ,直接用 MP 肯定舒服,如果写多表,还是用 Mybatis 多点,毕竟直接写 SQL 会直观一点,MP 给我的感觉,就是方法封装了很多,还有一些算比较是用的插件,但是可读性会稍微差一点,不过个人有个人的看法哇
BWH_Steven
2020/10/10
6560
一文通关之MybatisPlus
MyBatisPlus 1、MyBatisPlus概述 需要的基础:把我的MyBatis、Spring、SpringMVC就可以学习这个了! 为什么要学习它呢?MyBatisPlus可以节省我们大量工
yuanshuai
2022/08/22
2380
一文通关之MybatisPlus
mybatis-plus代码生成器(二)
之前写过一篇,不过当时是快照版直接跑在源码环境里,今天我们使用最新的api,并且使用GAV引入
阿超
2022/08/17
5450
相关推荐
五.SpringBoot配置自动生成代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文