MybatisPlus代码生成器使用示例

 更新时间:2024年06月12日 10:00:01   作者:康提扭狗兔  
MyBatis-Plus自动化的生成与数据库表对应的Java代码文件,本文主要介绍了MybatisPlus代码生成器使用示例,具有一定的参考价值,感兴趣的可以了解一下

前言 

MyBatis-Plus 的代码生成器主要是基于 MyBatis-Plus 的元数据分析功能,通过读取数据库中的表结构信息,生成对应的 Entity、Mapper、Service、Controller 等代码文件。

元数据分析: 代码生成器首先连接到数据库,读取数据库中的表结构信息,包括表名、字段名、字段类型、注释等元数据信息。

模板引擎: 代码生成器使用模板引擎来生成代码文件。模板文件定义了生成文件的结构和内容,其中可以包含一些占位符,用于动态替换成实际的数据,如表名、字段名等。

代码生成: 根据元数据信息和模板文件,代码生成器生成对应的 Java 代码文件。生成的文件包括 Entity 类(对应数据库表的字段)、Mapper 接口(提供数据库操作方法)、Service 类(封装业务逻辑)、Controller 类(处理 HTTP 请求)等。

自定义配置: 代码生成器提供了丰富的配置选项,可以根据用户的需求进行灵活配置。用户可以指定生成的包名、输出路径、命名规则等,以满足不同项目的需求。

执行生成: 用户运行代码生成器的程序,代码生成器根据配置信息读取数据库表结构,并根据模板文件生成对应的代码文件,最终输出到指定的路径中。

总的来说,MyBatis-Plus 的代码生成器利用数据库的元数据信息和模板文件,自动化地生成与数据库表对应的 Java 代码文件,极大地提高了开发效率,减少了重复劳动。

针对数据库中的实体类表,自动生成相关的pojo类,mapper,service等

1. Get-Started

基于mybatisplus,idea下载mybatisplus插件

在这里插入图片描述

sql文件

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

DROP TABLE IF EXISTS `learning_lesson`;
CREATE TABLE IF NOT EXISTS `learning_lesson` (
  `id` bigint NOT NULL COMMENT '主键',
  `user_id` bigint NOT NULL COMMENT '学员id',
  `course_id` bigint NOT NULL COMMENT '课程id',
  `status` tinyint DEFAULT '0' COMMENT '课程状态,0-未学习,1-学习中,2-已学完,3-已失效',
  `week_freq` tinyint DEFAULT NULL COMMENT '每周学习频率,例如每周学习6小节,则频率为6',
  `plan_status` tinyint NOT NULL DEFAULT '0' COMMENT '学习计划状态,0-没有计划,1-计划进行中',
  `learned_sections` int NOT NULL DEFAULT '0' COMMENT '已学习小节数量',
  `latest_section_id` bigint DEFAULT NULL COMMENT '最近一次学习的小节id',
  `latest_learn_time` datetime DEFAULT NULL COMMENT '最近一次学习的时间',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `expire_time` datetime DEFAULT NULL COMMENT '过期时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `idx_user_id` (`user_id`,`course_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='学生课程表';

-- 正在导出表  tj_learning.learning_lesson 的数据:~4 rows (大约)
DELETE FROM `learning_lesson`;
INSERT INTO `learning_lesson` (`id`, `user_id`, `course_id`, `status`, `week_freq`, `plan_status`, `learned_sections`, `latest_section_id`, `latest_learn_time`, `create_time`, `expire_time`, `update_time`) VALUES
	(1, 2, 2, 2, 6, 1, 12, 16, '2023-04-11 22:34:45', '2022-08-05 20:02:50', '2023-08-05 20:02:29', '2023-04-19 10:29:29'),
	(2, 2, 3, 1, 4, 1, 3, 31, '2023-04-19 11:42:50', '2022-08-06 15:16:48', '2023-08-06 15:16:37', '2023-04-19 11:42:50'),
	(1585170299127607297, 129, 2, 0, NULL, 0, 0, 16, '2023-04-11 22:37:05', '2022-12-05 23:00:29', '2023-10-26 15:14:54', '2023-04-11 22:37:05'),
	(1601061367207464961, 2, 1549025085494521857, 1, 3, 1, 4, 1550383240983875589, '2023-04-11 16:34:44', '2022-12-09 11:49:11', '2023-12-09 11:49:11', '2023-04-11 16:34:43');

/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;

代码生成前的目录结构

在这里插入图片描述

2. 代码生成步骤

2.1 连接数据库

在这里插入图片描述

2.2 配置代码生成器

在这里插入图片描述

在这里插入图片描述

点击 code generator

2.3 生成的代码

在这里插入图片描述

替换id生成方式,改为雪花算法

在这里插入图片描述

2.4 单元测试

在这里插入图片描述

在这里插入图片描述

到此这篇关于MybatisPlus代码生成器使用示例的文章就介绍到这了,更多相关MybatisPlus 代码生成器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Java中的HashMap弱引用之WeakHashMap详解

    Java中的HashMap弱引用之WeakHashMap详解

    这篇文章主要介绍了Java中的HashMap弱引用之WeakHashMap详解,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题,需要的朋友可以参考下
    2023-09-09
  • Java线程之间数据传递的实现示例(4种)

    Java线程之间数据传递的实现示例(4种)

    我们经常会遇到父子线程数据传递(非调用参数)的场景,本文主要介绍了Java线程之间数据传递的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 实例讲解Java的设计模式编程中责任链模式的运用

    实例讲解Java的设计模式编程中责任链模式的运用

    这篇文章主要介绍了Java的设计模式编程中责任链模式的运用,讲解了通过条件判断结构来分配不同对象的责任权限,需要的朋友可以参考下
    2016-02-02
  • 初学者,Spring快速入门

    初学者,Spring快速入门

    本文主要讲解了Spring框架的基础知识,Spring是一个轻量级的开源框架,它是为简化企业级应用开发而生。文中运用代码非常详细的介绍了相关知识,需要了解的小伙伴可以参考一下哦
    2021-09-09
  • Java中数据库加密的方式分享

    Java中数据库加密的方式分享

    在现今互联网时代,数据安全已经成为了我们必须要面对的重要课题,在本文中,我们将会介绍Java中常用的几种数据库加密方式并分析一下它们的优缺点,希望对大家有所帮助
    2023-05-05
  • SpringSessionRedis配置及发现的问题讲解

    SpringSessionRedis配置及发现的问题讲解

    今天小编就为大家分享一篇关于SpringSessionRedis配置及发现的问题讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Java Http请求传json数据乱码问题的解决

    Java Http请求传json数据乱码问题的解决

    这篇文章主要介绍了Java Http请求传json数据乱码问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java读取制表符文本转换为JSON实现实例

    Java读取制表符文本转换为JSON实现实例

    在Java开发中,处理各种数据格式是常见的任务,本文将介绍如何使用Java读取制表符文本文件,并将其转换为JSON格式,以便于后续的数据处理和分析,我们将使用Java中的相关库来实现这个过程,并提供详细的代码示例
    2024-01-01
  • TC 集群Seata1.6高可用架构源码解析

    TC 集群Seata1.6高可用架构源码解析

    这篇文章主要为大家介绍了TC 集群Seata1.6高可用架构源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Java mybatis-plus详解

    Java mybatis-plus详解

    MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做修改,为简化开发、提高效率而生,本文给大家详细讲解一下MyBatis-Plus,需要的朋友参考下吧
    2021-09-09

最新评论