MyBatisPlus代码生成器使用

news2024/11/15 22:35:00

MybatisPlus特点


无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库

内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

内置性能分析插件:可输出 Sql 语句以及其执行时间建议开发测试时启用该功能,能快速揪出慢查询

内置全局拦截插件:提供全表 delete,update 操作智能分析阻断也可自定义拦截规则,预防误操作

内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击

本文着重介绍代码生成器

第一步:新建一个springboot项目

第二步:pom文件导入依赖

   <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId> <optional>true</optional>
        </dependency>
        <!-- mysql-connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.32</version>
        </dependency>
        <!-- mybatis-plus代码生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

第三步:yml文件配置

server:
  port: 8070
spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置连接数据库信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/woniu_kaka?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    username: root
    password: 123456
mybatis-plus:
  type-aliases-package: com.lps.entity
  configuration:
    # 配置MyBatis日志,执行sql的时候,将sql打印到控制台
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      table-prefix: t_
      id-type: auto
  mapper-locations: classpath:mappers/*.xml

  servlet:
    multipart:
      #设置单个文件的大小,-1表示不限制,单位MB
      max-file-size: 1000MB
      #设置单次请求的文件总大小,-1表示不限制,单位MB
      max-request-size: 10000MB

第四步:导入工具类

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class MyBatisPlusGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/woniu_kaka?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("刘品水") // 设置作者
                            //.enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("F:\\JavaPackage\\mybatisplusGenerator"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com") // 设置父包名
                            .moduleName("finance") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,"F:\\JavaPackage\\mybatisplusGenerator"));     // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("t_asset", "t_department"
                                    ,"t_finance"
                                    ,"t_menu"
                                    ,"t_permission"
                                    ,"t_role"
                                    ,"t_role_menu"
                                    ,"t_role_permission"
                                    ,"t_tender"
                            ) // 设置需要生成的表名,多张表可以传递多个String类型的参数
                            .addTablePrefix("t_","my_"); // 设置过滤表前缀
                })
                .templateEngine(new FreemarkerTemplateEngine())
                // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

运行工具类即可(参数改为自己的即可)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用FME 批量OSGB转FBX(OBJ) (亲测)

首先感谢这个UP主&#xff1a;OSGB单体模型批量转FBX&#xff0c;并保留原有文件目录_哔哩哔哩_bilibili 吐槽&#xff1a;刚开始使用了OpenSceneGraph 去转换&#xff0c;发现贴图有黑斑。而且没有找到批量转换的方法。于是花费几个小时时间去查阅相关资料&#xff0c;最后确定…

“上海升级”后 以太坊抛压为何没来?

关联加密资产市场的Web3重新进入市场上升期&#xff0c;而被普遍视作Web3主流基建的以太坊区块链也在近日经历了一场重要升级。 此次升级被命名为“上海升级”&#xff0c;源于社区期望以太坊能够如上海一般多元化地发展和繁荣。上海升级带来的最大改变是&#xff0c;验证者可…

操作指南|如何在Moonriver上使用Polkassembly参与OpenGov

Polkassembly是一个开源平台&#xff0c;任何人都可以探索并参与Moonbeam的链上治理。Polkassembly完全支持OpenGov&#xff08;也称为Gov2&#xff09;。OpenGov目前在Moonriver上运行&#xff0c;并很快就会在Moonbeam上运行。 Polkassembly让参与治理变得容易。您可以打开讨…

一次「找回」TraceId的问题分析与过程思考

用好中间件是每一个开发人员的基本功&#xff0c;一个专业的开发人员&#xff0c;追求的不仅是中间件的日常使用&#xff0c;还要探究这背后的设计初衷和底层逻辑&#xff0c;进而保证我们的系统运行更加稳定&#xff0c;让开发工作更加高效。 结合这一主题&#xff0c;本文从一…

掌握这些移动测试技巧,棘手的问题也能游刃有余解决了

目录&#xff1a;导读 引言 一、测试的程序 二、功能测试点 三、移动端安卓环境变量 性能测试 四、实操通过USB连接到手机设备 五、adb操作命令 写在最后 引言 你是否曾经遇到过打开一个移动应用后出现各种问题&#xff0c;比如卡顿、闪退等&#xff1f; 这些问题可能会…

【HDCTF2023】wp

【HDCTF2023】wp 文章目录 【HDCTF2023】wpwebWelcome To HDCTF 2023SearchMasterYamiYamiLoginMaster mischardMiscMasterMiscExtremeMiscSuperMisc web Welcome To HDCTF 2023 在源码的 game.js中找到了flag 在控制台输出 console.log(seeeeeeeecret)得flag SearchMaster …

一文解析:低代码开发平台和零代码平台有什么区别?以及如何选?

随着数字化转型的加速&#xff0c;企业和组织对于快速开发和部署应用程序的需求也越来越迫切。 为了满足这一需求&#xff0c;低代码和零代码平台应运而生。这两种平台都提供了快速构建应用程序的方法&#xff0c;但它们之间的区别是什么呢&#xff1f;本篇就来为大家解答一下…

Linux常用命令(二)

目录 VI/VIM编辑器 Linux的root用户 用户和用户组管理 getent命令 查看权限控制信息 修改权限控制 chmod 修改权限控制 chown VI/VIM编辑器 vim是vi的加强版&#xff0c;兼容vi的所有指令。可编辑文本、shell程序&#xff0c;能以不同颜色字体来辨别语法正确性。3种工作…

软件研发的项目经理都在用哪些好的设计和管理的软件工具?

软件研发是一个复杂而又有趣的过程&#xff0c;它涉及到多个阶段&#xff0c;如需求分析、设计、编码、测试、部署、维护等。在这个过程中&#xff0c;我们需要使用各种工具来帮助我们提高效率、保证质量、协作沟通、解决问题等。工具化是指将一些重复性或者困难的任务封装成可…

Python-pyppeteer解决微软Microsoft的登录机器人验证(8)

前言 本文是该专栏的第8篇,结合优质项目案例,让你精通使用Pyppeteer,后面会持续分享Pyppeteer的干货知识,记得关注。 在注册微软Microsoft账号或者注册outlook邮箱账号的时候,会遇到如下机器人验证: 是的,你可能第一眼看到这个验证页面,首先会想到是定位它的页面元素N…

《C++PrimerPlus》第六章 分支语句和逻辑运算符

本篇文章将对《CPrimerPlus》第3章进行勾画 以我个人习惯来勾画 C和C不同点将用红色高亮表示 关于C的额外补充知识用蓝色高亮表示 对C的注意点以及总结部分用绿色高亮表示 正常情况本专栏2周更新一次 文章目录 6.1 if语句![在这里插入图片描述](https://img-blog.csdnimg.cn/…

Qt音视频开发40-ffmpeg采集桌面并录制

一、前言 之前用ffmpeg打通了各种视频文件和视频流以及本地摄像头设备的采集&#xff0c;近期有个客户需求要求将整个桌面屏幕采集下来&#xff0c;并可以录制保存成MP4文件&#xff0c;以前也遇到过类似的需求&#xff0c;由于没有搞过&#xff0c;也没有精力去摸索和测试&am…

研报精选230424

目录 【行业230424华福证券】功率半导体行业深度报告&#xff1a;能源变革大时代&#xff0c;功率器件大市场 【行业230424华西证券】海外锂资源企业近况总结之锂辉石篇&#xff1a;2023年海外锂资源供应量同比增长45%&#xff0c;H2比H1增加13万吨LCE供应 【行业230424东吴证券…

免费且不丢失数据的MBR转GPT软件!

什么是MBR和GPT&#xff1f; MBR和GPT是不同的分区形式&#xff0c;它们是管理硬盘的2种不同方式。MBR是一种旧的分区形式&#xff0c;而GPT是一种逐渐取代MBR的新分区形式。 通常&#xff0c;MBR和GPT在分区大小、主分区数和引导模式方面有不同。MBR支持不超过2TB的硬盘&a…

《商用密码应用与安全性评估》第三章商用密码标准与产品应用3.2商用密码产品类别

商用密码产品类型 商用密码产品按形态可以划分为六类∶软件、芯片、模块、板卡、整机、系统 软件是指以纯软件形态出现的密码产品&#xff0c;如密码算法软件。芯片是指以芯片形态出现的密码产品&#xff0c;如算法芯片、安全芯片。模块是指将单一芯片或多芯片组装在同一块电路…

搞懂 API ,后端 API 接口设计方法

后端 API 接口设计是开发 Web 应用和移动应用的关键组成部分&#xff0c;好的接口设计可以提高应用的稳定性、可维护性和安全性。以下是一些常用的后端 API 接口设计方法&#xff1a; 使用 RESTful API&#xff1a;RESTful API 是一种基于 HTTP 协议的 Web API 设计理念&#x…

DAY04_方法

1&#xff1a;方法的定义和使用 1.1 方法概述和课程安排 什么是方法呢&#xff1f; 方法(method)&#xff1a;就是完成特定功能的代码块 如何理解这句话呢?来&#xff0c;我们看一段代码&#xff0c;相信这个大家应该已经很熟悉了 这就是我们的main方法&#xff0c;也就是…

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警告警订阅查询报警预案截图保存视频及REDIS消息订阅

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警告警订阅查询报警预案截图保存视频及REDIS消息订阅 1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅 1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.…

LVS-DR部署

Lvs基于内核实现的负载均衡 只有四层代理转发 请求数据包&#xff0c;源地址&#xff08;客户端&#xff09;变目的。vip变源 lo&#xff1a;0回环网卡 数据包流向分析&#xff1a; &#xff08;1&#xff09;客户端发送请求到 Director Server&#xff08;负载均衡器&#…

springmvc请求路径以及url地址映射和参数绑定,jetty是什么

springmvc请求流程&#xff1a; url地址映射和参数绑定&#xff1a; controller文件 requestmapping括号里是url路径。 若web.xml里pattern里有.do则要加到url后面 综述&#xff1a;url为 localhost:8080/springmvc01/test01 地址&#xff1a;localhost:8080/web.xml设置的后缀…