基于MybatisGenerator扩展的 Model & Mapper & Service & Controller代码生成器

MyBatis Generator 代码自动生成器 Mybatis的逆向工程就是由代码生成器生成我们需要的代码和映射文件。我们在编写Mybatis程序时,基本都是围绕着pojo类,Mapper接口,Mapper.xml文件等文件来进行的。如果实际开发中数据库的表特别多,那么我们需要手动去写每一张表的pojo类,Mapper接口,Mapper.xml文件,这显然需要花费巨大的精力,而且可能由于表字段太多,哪里写错了都难以排除。所以我们在实际开发中,一般使用逆向工程方式来自动生成所需的文件,这也是企业中一种非常常见的方法。 阅读详情

新鲜出炉的基于数据库表
自动生成Mybatis的 Model & Mapper & Service & Controller 等的代码的代码生成器,基于Mybatis Generator扩展其JavaMapper和XmlMapper的实现,一个普通业务网站的后端逻辑,点一下鼠标就实现了,项目链接:
https://github.com/fenglibin/CodeGenerator。

Java代码生成器

介绍

这是一个基于数据库表
用来自动生成 Model & Mapper & Service & ServiceImpl & Controller 等代码的代码生成器
使用者可以通过修改ftl模板来生成自己所需的基本代码块
主要是为了解决日常工作、练习中代码的重复工作量
目前仅支持 Mybatis 底层代码的生成

注:本项目fork自https://github.com/zhaohaihao/CodeGenerator ,感谢原作者zhaohaihao。不过我在使用代码的时候发现原项目有很多功能或者使用场景不适合我,因而我在原来项目的基础之上做了大的调整。在原来的基础之上修改点如下: 1、去掉依赖tk.mybatis和pagehelper的依赖,完全自已实现相关的逻辑,因为我还是觉得mybatis原始的实现方式更适合我; 2、实现自定义的CustomizeJavaMapperGenerator和CustomizeXMLMapperGenerator,可以灵活的定制自已经需要生成的功能; 3、实现了按条件的分页查询,并在Controler层实现统一返回结果; 4、去掉了一些原来需要用户参与的配置和定制,完全按照MybatisGenerator的标准实现,使配置看起来更简洁,代码实现也更简单; 5、增加单元测试的相关的依赖,方便对生成代码的单元测试。

目录结构

├── src
│   ├── main
│   │   ├── java   
│   │   │   └── com
│   │   │       ├── codegen 
│   │   │       │   └── vo   // 项目需要的代码
│   │   │       │       ├── Page.java
│   │   │       │       └── Result.java
│   │   │       └── gencode  // 存放生成的代码(该目录中的代码可以删除)
│   │   │           └── generate
│   │   │               ├── persistence
│   │   │               │   ├── mapper
│   │   │               │   │   └── SitesMapper.java
│   │   │               │   └── model
│   │   │               │       └── Sites.java
│   │   │               ├── service
│   │   │               │   └── SitesService.java
│   │   │               └── web
│   │   │                   └── controller
│   │   │                       └── SitesController.java
│   │   └── resources
│   │       └── com          //生成的mapper.xml(该目录中的内容可以删除)
│   │           └── gencode
│   │               └── generate
│   │                   └── persistence
│   │                       └── mapper
│   │                           └── SitesMapper.xml
│   └── test
│       ├── java
│       │   └── com
│       │       └── codegen
│       │           ├── generator  //根据Mybatis实现的代码和xml配置生成器
│       │           │   ├── CountByConditionElementGenerator.java
│       │           │   ├── CountByConditionMethodGenerator.java
│       │           │   ├── CustomizeJavaMapperGenerator.java
│       │           │   ├── CustomizeXMLMapperGenerator.java
│       │           │   ├── DeleteByConditionElementGenerator.java
│       │           │   ├── DeleteByConditionMethodGenerator.java
│       │           │   ├── SelectByPageElementGenerator.java
│       │           │   └── SelectByPageMethodGenerator.java
│       │           ├── main
│       │           │   └── CodeGeneratorMain.java  //代码生成器的主类
│       │           ├── service
│       │           │   ├── CodeGeneratorConfig.java
│       │           │   ├── CodeGenerator.java
│       │           │   ├── CodeGeneratorManager.java
│       │           │   └── impl
│       │           │       ├── ControllerGenerator.java
│       │           │       ├── ModelAndMapperGenerator.java
│       │           │       └── ServiceGenerator.java
│       │           ├── test //单元测试存的目录(该目录可以删除)
│       │           │   ├── BaseTestCase.java
│       │           │   ├── controller
│       │           │   │   └── SitesControllerTest.java
│       │           │   └── mapper
│       │           │       └── SitesMapperTest.java
│       │           └── util //相关工具类的存放目录
│       │               ├── DataUtil.java
│       │               ├── FileUtil.java
│       │               ├── MethodUtil.java
│       │               └── StringUtils.java
│       └── resources
│           ├── config //用于单元测试的配置()
│           │   └── jdbc.properties 
│           ├── generator //controller和service的模板所在目录
│           │   └── template
│           │       ├── controller.ftl
│           │       └── service.ftl
│           ├── generatorConfig.properties  //生成器核心配置文件
│           └── spring //用于单元测试的配置
│               ├── applicationContext-db-normal-context-test.xml
│               └── spring-application-context-test.xml

使用说明

运行

进入到 src/test/java 目录下
找到CodeGeneratorMain类 为生成器的启动项
直接 Run As Java Application 运行即可

修改配置

进入到 src/test/resources 目录下
找到 generatorConfig.properties 文件
修改对应的参数即可
具体的注释信息可参考 /src/test/java/com/codegen/service/CodeGeneratorConfig.java 类

自定义生成器

参考目录src/test/java/com/codegen/generator下面相关的实现

模板样式修改

如果需要生成自己所需的 Controller & Service 样式
进入到 src/test/resources/generator/template 目录下
修改对应的ftl文件即可

数据库表名规则

表名支持单个单词的表名,如”table1“,已经根据下划线分隔的表名如“my_table1”,其它的没有测试。

idea配置SpringBoot+MybatisPlus的Controller模板,一键生成Controller 我用的MybatisX-Generator生成了entity和service等,但是他没有controller,还得自己创建好麻烦,于是写了模板。我想在com.xx.controller中输入UserInfoController,让他给我创建基本的接口,且自动引入service和entity接口返回类型为R,代码放下面。 阅读详情

相关推荐

MyBatis自动生成DAO/Model/Mapper指南

MyBatis Generator(MBG)是MyBatis官方提供的一个代码生成工具,旨在简化MyBatis应用开发中的数据持久层代码编写工作。通过MBG,开发者可以自动化生成与数据库表相对应的数据访问对象(DAO)接口及其实现类,以及相关的Model类。它通过读取数据库元数据和配置文件来生成代码,极大地提高了开发效率并减少了重复代码的编写。MBG不仅可以自动生成基础的CRUD操作,还可以针对复杂的查询需求提供定制化的生成策略。

weixin_35916518的博客 783

CodeGenerator——SpringBoot整合MyBatisPlus代码生成器

CodeGenerator 是Mybatis-Plus(Mybatis的一个增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生)的一个工具,对于基础controller,entity,mapper,service这些层进行自动生成。

jakelihua 7832

2024年上半年网络工程师下午真题及答案解析

位于MPLS域边缘、连接其他网络的LSR称为( 3 ),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时,MPLS入口设备分析IP报文的内容并为其添加合适的标签,所有MPLS网络中的LSR根据标签转发数据,当该IP报文离开MPLS网络时,标签由出口LER弹出。LSP的出口LER称为( 6 )。某高校网络拓扑如下图所示,两校区核心(CORE-1、CORE-2),出口防火墙(NGFW-1、NGFW-2)通过校区间光缆互联,配置OSPF实现全校路由收敛,两校区相距40km。

bsefef的博客 2471

MybatisCodeGenerator解析

github:https://github.com/Cukuyo/MybatisCodeGenerator 本项目是基于Jdk 1.8和maven开发的一款自动生成Mybatis Po层、dao层、mapper层、service层、serviceImpl层的工具,自动生成的代码则是我平常使用的编码习惯和规范,如果有问题或者发现BUG请提交一份Issue,如果你能赋予它更多的功能和更强的性能则更好 ...

ONS_cukuyo的博客 1237

GNSS-RTK/INS紧组合里,那个‘杆臂改正’到底怎么算?一个公式讲清INS与天线位置的关系

本文深入解析GNSS-RTK/INS紧组合导航系统中的杆臂改正(Lever Arm Correction)原理与实现方法。详细介绍了杆臂效应的物理本质、数学建模及误差扰动分析,揭示了IMU与GNSS天线位置关系的核心公式,并提供了工程实现中的常见误区与验证方法。通过Python代码示例和紧组合量测模型处理流程,帮助开发者准确理解并应用这一关键技术。

weixin_33137081的博客 354

【AI智能体】Coze 搭建个人旅游规划助手实战详解

本文将详细介绍如何使用Coze平台搭建个人旅游规划助手。首先概述了AI智能体如何简化传统复杂任务的开发流程,然后重点介绍了Coze工作流的作用和核心节点类型(包括大模型、插件、知识库等)。通过实际操作演示,从创建智能体到配置多级工作流,逐步实现旅游规划功能:解析用户输入时间地点、查询必玩景点、获取景点详细信息等。该教程展示了如何利用Coze的可视化编排能力,即使非技术人员也能快速构建专业级AI应用。最终呈现的旅游助手可提供天气查询、行程建议等一站式服务。

Hello, New World! 2107

MyBatis Generator代码生成器

MyBatis Generator 作为一个基于 MyBatis 的独立工具,它可以通过简单的配置去帮我们生成数据表所对应的 PO、DAO、XML 等文件,减去我们手动去生成这些文件的时间,有效提高开发效率。

susjj663的博客 893

ThinkPad T14 Gen 2与T14P系列对比

表格您的需求推荐机型日常办公、出差、文档处理、视频会议✅(够用、轻便、便宜)视频剪辑、3D建模、编程编译、AI训练、高色准设计✅(性能强、屏幕好、扩展佳)想要未来 5 年不换机✅T14p预算低于 5000 元✅T14 Gen 2(或考虑 T14 Gen 3/4)T14p 2025 款 ≠ 小改款,而是架构级升级它从“高性能笔记本”进化为“AI 移动工作站”,核心差异在于NPU + Ultra 平台 + 全面屏显 + 超长续航。如果您从事AI 开发、视频创作、工程仿真、多任务编程。

tecoes的博客 2735

java mapper control_基于MybatisGenerator扩展的 Model & Mapper & Service & Controller代码生成器...

新鲜出炉的基于 数据库 表自动生成Mybatis的 Model & Mapper & Service & Controller 等的代码的代码生成器,基于Mybatis Generator扩展其JavaMapper和XmlMapper的实现,一个普通业务网站的后端逻辑,点一下鼠标就实现了,项目链接:Java代码生成器介绍这是一个基于数据库表用来自动生成 Model &amp...

weixin_39593340的博客 140

【YOLOv8/v9/v10 实战 01】YOLOv8/v9/v10全系列实战对决:性能矩阵、架构拆解与2026部署指南

2026年YOLO生态已进入“战国时代”,Ultralytics YOLOv8/11/26、阿里YOLO12、清华YOLOv10、微软YOLOv9四大路线并行发展。本文基于官方文档、学术论文及实测数据,系统剖析三大核心版本(YOLOv8/v9/v10)的架构演进逻辑,构建覆盖参数量、mAP、FPS、FLOPs的完整性能矩阵。通过8组工业场景实测、全流程代码实现(训练-导出-部署)、6类硬件适配方案,解决新手选型难、进阶者优化无门、工业开发者部署低效的痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 533

【异常】Error loading ASGI app. Could not import module ‘main‘

出现或。

奶爸的编程之路,也就一周冷个三天 1851

mybatisgenerator生成mapper时报错

网上搜了下找到了简单的处理办法,在idea的setting里找到maven runner里设置忽略证书检查,添加上-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true。好,删除本地仓库里对应的目录(目录里没有jar包)后再次执行还是报错;找同事看他本地有没有对应的jar包,拷到我本地maven仓库下。

1094

Unity零基础到入门 ☀️| 【UI系统学习】轻松学会 Unity 的 UGUI基础控件的使用(包括一个简易血条、蓝条设计)

Unity,UGUI。本篇博客来挑几种Unity中最常用的UI控件如何使用和使用技巧,包括一个简易血条蓝条的小实例

努力前行,总会成为自己心中的那道光 2万+

MybatisGenerator自动代码生成器的使用

    之前有写过一篇文章通过RuoYi自动生成SpringBoot项目代码,这篇文章有介绍如何通过RuoYi框架来自动生成相关的SpringBoot代码。但并不是所有的小伙伴都会去下载RuoYi这一套框架代码去获取domain、mapper以及mapping,特此本人再推荐一款很实用并且也容易上手的工具“MybatisGenerator”自动代码生成器,下面将对此做详细的介绍和说明。 目录1. 文件下载2. 相关配置(1)数据库驱动包位置(2)数据库链接URL、用户名和密码(3)要生成哪些表3. 使用方法

Fish_Vast的博客 2357

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6275

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用SpringBoot2.3.0同tk.mapper整合及自动生成service,mapper层的代码

使用SpringBoot2.3.0同tk.mapper整合及自动生成service,mapper层的代码; 工作中使用之前使用了SpringBoot1.5.12,近期尝试了下2.3.0练练手;直接代码如下: 架构结构:https://www.cnblogs.com/myitnews/p/11560127.html PageHelper分页插件:https://www.cnblogs.com/myitnews/p/11565301.html

liaonanfeng88的优快云博客 1305

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

开源MyBatisGenerator组件源码分析

到此为止,仍然没有生成具体的code内容文本,mybatis3中在后面写文件过程时才会组装,例如org.mybatis.generator.codegen.mybatis3.javamapper.JavaMapperGenerator。3.CONDITIONAL条件模式,(1)可选生成独立的主键类(单一字段主键不生成独立类,非单一字段则生成(联合主键))(2)有2个以上text大字段,生成xxxWithBLOBs包装类。但复杂的是,去适配不同的配置模式,动态的组装、拼接。再想想还可以做什么?...

萌兔兔MMQ!! 491

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MyBatis-Generator plugin 自定义mapper,model

mybatis generator plugin

qq_61934093的博客 815

MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口

MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model、xml映射文件、mapper接口,只是简单的生成,还需要根据需求修改。 1、下载jar包 https://github.com/mybatis/generator/releases 解压后有3个jar包,只使用一个: 2、新建一个新的java项目,导入mybatis.jar、...

chenhongyong 414

可视化逆向工程利器 mybatis-generator-gui-extension:一张图看懂 MyBatis 代码生成器能做什么

如果你还在为手写 MyBatis 的 Mapper、XML 和实体类而烦恼,那么这款主打**可视化逆向工程**的 **MyBatis 代码生成器**——mybatis-generator-gui-extension 一定能帮到你。它是 MyBatis Generator(MBG)的图形化界面扩展,把原本晦涩的 XML 配置全部变成所见即所得的勾选操作,还能一键生成 Service、Controll

gitblog_01057的博客 396

在SpringBoot中使用MyBatis Generator 逆向工程自动生成mapper、model、xml

什么是MyBatis Generator MyBatis Generator俗称逆向工程,是来有效帮助开发人员,减少劳动力,根据数据库表结构,自动为我们生成model,mapper,mapper.xml,非常的方便。 为什么我们要使用MyBatis Generator 在数据库表很多的时候,开发人员要一个个的去建实体类,Mapper,以及Mapper对应的xml文件,非常的麻烦,有的时候不仔细,还...

技术无止境 3914

5.6 Mybatis代码生成器Mybatis Generator (MBG)实战详解

本文我们主要实战Mybatis官方的代码生成器:Mybatis Generator(MBG),掌握它以后,可以简化大部分手写代码,我们只需要写复杂逻辑代码!创建与MySQL表对应的Java PO对象,字段一一对应;创建Mapper接口,和对应的XML映射文件(或注解)。首先是PO对象,我们往往创建与数据库表字段一一对应的PO对象;其次在Mapper里,通常都会写基本的增删改查代码。

m0_74824123的博客 2988

【mybatis代码生成器】mybatis-generator的xml方式使用

我的使用时通过配置文件的方式使用的,这种方式看起来直观,但是不灵活,而且不能生成service和controller层代码,想要生成service和controller层还是写代码自定义模板生成。 mybatis-generator的官方地址:http://mybatis.org/generator/ 具体的使用方式,常用标签标注出来了,具体的查阅文档 使用步骤: pom中添加插件,设置数据库驱动 <build> <plugins> ...

一步一个脚印_binding 2327
上一篇: HBase中的SplitRegionPolicy实现原理及其源码解读
下一篇: Spark2中操作HBase的异常:java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值