首页 > 其他分享 >2023最新版——新手使用mybatis-plus 3.5.2并使用器代码生成器

2023最新版——新手使用mybatis-plus 3.5.2并使用器代码生成器

时间:2023-05-08 17:44:06浏览次数:45  
标签:代码生成 String mapper plus 2023 mybatis static 最新版 com

最新版——新手使用mybatis-plus 3.5.2并使用器代码生成器

第一步,pom文件引入依赖

主要引入mybatis-plus和代码生成器需要使用的freemaker依赖

<dependency>
 	<groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
 <dependency>
    <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-generator</artifactId>
      <version>3.5.2</version>
 </dependency>
  <dependency>
      <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter-test</artifactId>
      <version>3.5.3.1</version>
  </dependency>

  <!--freemarker模板-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.32</version>
        </dependency>
        <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>1.5.13</version>
       </dependency>

注意:

  • springboot和mybatis-plus需要对应版本,建议去mybatis-plus官网查看。

  • 本文使用的springboot和mybatis-plus都是最新版本:springboot 2.7.8,mybatis-plus3.5.2

  • 如果不知道该使用啥版本,建议都选最新版本

  • mybatis-plus官网有详细指南,建议观看

第二步,配置

在application.properties或yml文件中配置:

# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#这里把qa换成自己数据库名字
spring.datasource.url=jdbc:mysql://localhost:3306/qa?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false
#数据源配置
#username和password写自己数据库的
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
#mybatis-plus配置
#放mapper文件的具体位置
mybatis-plus.mapper-locations= classpath*:com/luo/forum/mapper/xml/*Mapper.xml
#给entity包取别名,这样在使用com.luo.forum.User等实体时可以直接写User
mybatis-plus.type-aliases-package=com.luo.forum.entity
#日志:开启这个日志后,回台控制台输出sql语句及查询结果
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

第三步,代码生成器

创建一个类:mygenerator

package com.luo.forum;

        import com.baomidou.mybatisplus.annotation.FieldFill;
        import com.baomidou.mybatisplus.annotation.IdType;
        import com.baomidou.mybatisplus.generator.FastAutoGenerator;
        import com.baomidou.mybatisplus.generator.config.*;
        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;

public class MyGenerator {
    private static final String projectPath = System.getProperty("user.dir");
    private static final String url = "jdbc:mysql://127.0.0.1:3306/qa";//这里改为自己数据库名字
    private static final String username = "root";//数据库用户名和密码
    private static final String password = "123456";
    private static final String parentPackageName = "com.luo.forum";//生成的mapper等文件夹放在哪个包下
    private static final String writer = "lyy";//自己的名字
    private static final String outPath = projectPath + "\\src\\main\\java\\";
    private static final String mapperPath = projectPath + "\\src\\main\\java\\com\\luo\\forum\\mapper\\xml\\";//mapper.xml文件放的位置

    public static void main(String[] args) {
        String[] tableNames = {"user"};//数据库表名
        MyGenerator.execute(tableNames);
    }

    public static void execute(String[] tableNames) {
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author(writer) 
                            .enableSwagger() 
                            .outputDir(outPath) 
                            .disableOpenDir();
                })
                .packageConfig(builder -> {
                    builder.parent(parentPackageName) 
                            .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath));
                })

                .strategyConfig(builder -> {
                    builder.addInclude(tableNames) 
                            .addTablePrefix("t_") 
                            //Service 层生成设置
                            .serviceBuilder()
                            .formatServiceFileName("%sService")
                            .formatServiceImplFileName("%sServiceImpl")
                            //Entity
                            .entityBuilder()
                            .entityBuilder().fileOverride()//表示再次生成会覆盖,建议entity和mapper层覆盖
                            .enableChainModel()
                            .enableLombok()
                            .enableTableFieldAnnotation()
                            .logicDeleteColumnName("deleted")
                            .logicDeletePropertyName("deleted")
                            .versionColumnName("version")
                            .versionPropertyName("version")
                            .addTableFills(new Column("create_Time", FieldFill.INSERT))
                            .addTableFills(new Column("update_Time", FieldFill.INSERT_UPDATE))
                            //controller 
                            .controllerBuilder()
                            .enableRestStyle()//生成的controller自带@RestController注解
                            //mapper
                            .mapperBuilder()
                            .mapperBuilder().fileOverride();
                })
                .templateEngine(new FreemarkerTemplateEngine()) //使用freemaker模板引擎
                .execute();
    }
}

注意:

  • 每次运行会为表生成mapper、service、entity和controller层代码,其中mapper层和entity层会覆盖之前生成的,改了表结构重新运行即可
  • 如果需要自己写sql语句,在mapper和mapper.xml中编写,mapper层上要自己加上@Mapper注解,可能会扫描不到
  • 自己的业务方法写在serviceImpl中

标签:代码生成,String,mapper,plus,2023,mybatis,static,最新版,com
From: https://www.cnblogs.com/xiluoluo/p/17382469.html

相关文章

  • 2023.5.8 设计模式简介
    1,设计模式概述1.1软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(ChristopherAlexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述......
  • THUSC2023 题面回忆
    造福后人?鸣谢\(Kaguya\)进行补充,修改和行末句号(。)D1T1给定长度为\(n\)的序列,\(Q\)次询问/修改。1lrx区间\([l,r]\)所有数\(+x\)。2lrx询问区间\([l,r]\)至少操作多少次使得整个区间都为\(x\),每次操作你可以选定一个子区间,将区间中的数全都\(+1/......
  • GitHub搭建个人博客2023
    1.登录github2.上传一个index.html的文件3.点击settings-->然后点击pages3.选择分支->点击save ......
  • Ubuntu 安装最新版 redis
    可以通过以下步骤在Ubuntu上安装最新版本的Redis:1. 更新软件包索引列表。打开终端并使用如下命令:sudoaptupdate2. 安装Redis依赖项。使用如下命令:sudoaptinstallbuild-essentialtcl3. 下载最新版本的Redis。可以从Redis的官方网站获取最新版本的Redis:wgethttp://d......
  • 多模态+大模型领域的开源数据集(持续更新中20230508)
     ConceptualCaption简称cc,minigpt4就使用这个数据集,一个大规模的图像文本配对数据集,包含超过30万个图像,每个图像都有5个人工描述。这个数据集的目的是为了促进计算机视觉和自然语言处理之间的研究交叉,可以用于图像检索、视觉问答等任务的训练和评估。ConceptualCaptions为......
  • mac版DataSpell2023:专业数据科学家的 IDE,macbook程序员必备
    DataSpell2023forMac是一款强大的数据科学工具,它提供了广泛的功能和工具,帮助用户更好地分析、处理和可视化数据。无论是数据分析师、数据科学家、商业分析师还是研究人员,DataSpellforMac都是一个理想的选择。mac软件下载:https://mac.macsc.com/mac/4116.html?id=MzI1OTY2......
  • 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年4月刊
    本文为大家整理了墨天轮数据社区2023年4月发布的优质技术文章,主题涵盖Oracle、MySQL、PostgreSQL等数据库的基础安装配置、故障处理、性能优化等日常实践操作,以及概念梳理、常用脚本、注意事项等总结记录,分享给大家:Oracle优质技术文章概念梳理&基础配置Oracle之嵌套循环连接(Ne......
  • THUSC 2023 没约记
    点开干啥,都说了真的没约了。出场一堆人说自己寄了,结果说的人除了我都是1=,人与人之间的信任呢。我是众人眼里的NOI打铜选手,其实不是不接受这个结果,毕竟我学OI本来就是意外,拿个铜牌已经很好了。但是,怎么说,这种感觉真的很不好。现在我比较讨厌去学校,去学校就会害怕。学whk......
  • 2023.5.8周学习总结
    一.本周计划1.继续复习图论知识2.vp一场省赛3.补cf和abc和牛客的题二.计划完成情况三.题解(158条消息)AtCoderBeginnerContest300(D-G)_scanner___yw的博客-CSDN博客四.总结1.这周打比赛的时候非常粗心,经常写错变量名,然后吃很多罚时,就很亏。......
  • C/C++数据结构练习题[2023-05-08]
    C/C++数据结构练习题[2023-05-08]基本习题部分1字符串距离目的:字符串是一种基础且广泛使用的数据结构,与字符串相关的题目既可以考察基本程序设计能力和技巧,也可以考查算法设计能力。题目:求字符串之间距离要求:设有字符串X,称在X的头尾及中间插入任意多个空格后构成的新字......