博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis-Plus3.1.0 代码生成器的使用
阅读量:2216 次
发布时间:2019-05-07

本文共 1513 字,大约阅读时间需要 5 分钟。

废话不多说,官方文档讲的最清楚();

MyBatis-Plus 基于mybatis基础上做了增加不改变mybatis的任何东西以及使用方式。

MyBatis-Plus拥有 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。但是CRUD并不能满足我们业务的所有需求,常常还需要我们自己写一些sql,比如连表查询等,

所以mybatis还提供了注解与Warpper让开发者自由组装sql的方式,可能性能上有那么一点点的损耗(可以忽略不计)。

那么实际开发中我们还会遇到这样的场景,你数据库表新增了一个字段,需要对代码重新生成,这个时候你有很多自己实现的接口方法,和自己写的sql,该怎么办呢,重新生成的话会被空文件覆盖。我们现在来谈谈具体的思路与做法。

早期没有CRUD集成的时候,我们需要自行生成CRUD的操作,这个时候我们是通过继承一个抽象类的CRUD形式进行写自己的sql,新版的mybatis自己集成的 CRUD,那么这个时候会生成一个空mapper,提供给大家写自己的sql。

那么这个时候表新增字段的时候,只需要覆盖实体(entity)即可,其它原封不动。

那么这个就需要对官方生成器做一点小变更看这里,有个代码生成器配置一文。

含如下配置

数据源配置,策略配置,生成包信息配置,使用模板引擎配置,全局配置,以及注入自定义配置。

我们这里就需要自定义个生成文件的判断,当然全局的配置文件需要开启覆盖功能

// 自定义配置    InjectionConfig cfg = new InjectionConfig() {            @Override            public void initMap() {                // to do nothing            }        };cfg.setFileCreate(new IFileCreate() {            @Override            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {                // 判断自定义文件夹是否需要创建,这里调用默认的方法                checkDir(filePath);                //对于已存在的文件,只需重复生成 entity                File file = new File(filePath);                boolean exist = file.exists();                if(exist){                    if (FileType.ENTITY==fileType){                        return true;                    }else {                        return false;                    }                }                //不存在的文件都需要创建                return  true;            }        });

 

这样的话就可以只覆盖实体文件

转载地址:http://pxkfb.baihongyu.com/

你可能感兴趣的文章
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
SVM 的核函数选择和调参
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
什么是 Q-learning
查看>>
用一个小游戏入门深度强化学习
查看>>
5 分钟入门 Google 最强NLP模型:BERT
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>