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 代码生成器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!