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分布式缓存方案

    java分布式缓存方案

    本文简单介绍了缓存的种类,缓存常见的问题,对大家的学习和工作有一定的参考价值,需要的小伙伴可以参考一下
    2021-08-08
  • Java并发编程中使用Executors类创建和管理线程的用法

    Java并发编程中使用Executors类创建和管理线程的用法

    这篇文章主要介绍了Java并发编程中使用Executors类创建和管理线程的用法,文中举了用其启动线程和设置线程优先级的例子,需要的朋友可以参考下
    2016-03-03
  • 深入浅析springboot中static和templates区别

    深入浅析springboot中static和templates区别

    这篇文章主要介绍了springboot中static和templates区别,本文通过图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Java 值传递和引用传递详解及实例代码

    Java 值传递和引用传递详解及实例代码

    这篇文章主要介绍了 Java 值传递和引用传递详解及实例代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • Spring中利用SchedulingConfigurer实现动态定时任务配置的示例

    Spring中利用SchedulingConfigurer实现动态定时任务配置的示例

    定时任务是一项至关重要的功能,它们使得我们能够按照预定的时间执行特定的任务,本文主要介绍了Spring中利用SchedulingConfigurer实现动态定时任务配置的示例,感兴趣的可以了解一下
    2024-05-05
  • JAVA中IP和整数相互转化的方法

    JAVA中IP和整数相互转化的方法

    这篇文章主要介绍了JAVA中IP和整数相互转化的方法,涉及java数值转换的相关技巧,需要的朋友可以参考下
    2015-05-05
  • springboot使用redis实现从配置到实战

    springboot使用redis实现从配置到实战

    本文主要介绍了springboot使用redis ,采用的是RedisTemplate的形式,还有一种采用spring支持的注解进行访问缓存,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 解决bufferedReader.readLine()读到最后发生阻塞的问题

    解决bufferedReader.readLine()读到最后发生阻塞的问题

    这篇文章主要介绍了解决bufferedReader.readLine()读到最后发生阻塞的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Spring Batch批处理框架操作指南

    Spring Batch批处理框架操作指南

    Spring Batch 是 Spring 提供的一个数据处理框架。企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作,这篇文章主要介绍了Spring Batch批处理框架操作指南,需要的朋友可以参考下
    2022-07-07
  • 简单了解java类型转换常见的错误

    简单了解java类型转换常见的错误

    这篇文章主要介绍了简单了解java类型转换常见的错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论