ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybatis-plus自动生成代码(逆向工程????)

2021-04-19 22:56:13  阅读:324  来源: 互联网

标签:逆向 autoGenerator 生成 plus dataSourceConfig packageConfig Mybatis main 模板


Mybatis-plus自动生成代码

  • 1.pom导入Mybatis Plus Generator依赖
  • 2.新建一个类,编写main方法
  • 3.具体解析


MP给我们提供的一个很强大的扩展功能就是自动生成代码,他可以帮助我们生成mapper,controller,service,serviceImpl…等许多没有技术含量的代码,下面看看怎么操作吧!!!


1.pom导入Mybatis Plus Generator依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency>

除了导入 mybatis-plus-generator依赖外,还需要导入velocity模板,因为MP是按照这个模板来生成代码的!!!

模板默认使用的是velocity;
除了velocity外,还有Freemarker,Beet两个模板

2.新建一个类,编写main方法

public class Main {public static void main(String[] args) {//1.创建generator对象AutoGenerator autoGenerator = new AutoGenerator();//2.配置数据源DataSourceConfig dataSourceConfig = new DataSourceConfig();dataSourceConfig.setDbType(DbType.MYSQL);dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/exam?useSSL=false&useUnicode=true&characterEncoding=utf-8");dataSourceConfig.setUsername("root");dataSourceConfig.setPassword("root");dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");autoGenerator.setDataSource(dataSourceConfig);//3.全局配置(指明这些类生成的具体位置以及作者....)GlobalConfig globalConfig = new GlobalConfig();globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");globalConfig.setOpen(false);//不打开文件globalConfig.setAuthor("YangJiaWen");//让service名字前面没有IglobalConfig.setServiceName("%Service");autoGenerator.setGlobalConfig(globalConfig);//4.设置包信息(生成的类放在哪个包里面)PackageConfig packageConfig = new PackageConfig();packageConfig.setParent("com.jw");packageConfig.setModuleName("generator");packageConfig.setController("controller");packageConfig.setService("service");packageConfig.setServiceImpl("service.impl");packageConfig.setEntity("entity");autoGenerator.setPackageInfo(packageConfig);//5.配置策略StrategyConfig strategyConfig = new StrategyConfig();//提供lombokstrategyConfig.setEntityLombokModel(true);//支持驼峰strategyConfig.setNaming(NamingStrategy.underline_to_camel);strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);autoGenerator.setStrategy(strategyConfig);//6.执行autoGenerator.execute();}}

然后执行此main发方法,就会帮我们生成代码了!!!
在这里插入图片描述
注意:

  • 这些模板不用自己编写,只需拷贝过去稍作修改即可!!!
  • 有关一些模板配置的解释
    • System.getProperty(“user.dir”)作用是获取当前项目的根路径

    • 我们发现此配置是生成一个数据库中的所有表,如果我们想生成部分表,该怎么办???
      只需要添加一条即可,这里的include中的参数是你的表名,参数是可变参数,可以生成多个表

       strategyConfig.setInclude("user1","user2")

3.具体解析

通过图片我们可以发现,该生成器给我们自动生成了Service接口,以及实现类…
下面我们拿个简单类来分析一下
在这里插入图片描述

在这里插入图片描述
点进去进去发现:
LoginUserService继承了Iservice接口,
LoginuserServiceImpl 继承 ServiceImpl<LoginuserMapper, Loginuser>并实现了 LoginUserService接口
这里的Iservice接口和ServiceImpl<LoginuserMapper, Loginuser>是代码生成器已经帮我们生成好了的,我们点进去发现
在这里插入图片描述
他这两个类中已经给我们封装了BaseMapper中的方法,我们只需要在controller中注入LoginUserService即可;

如果我们是想要在service层编写自己的一些业务操作,那么在loginUserService接口中或者实现类中增加即可!!!

最后的最后,有一个小细节,很重要,那就是一定要在springboot的启动类上加上@MapperScan注解,属性值填你生成的代码的路径,注意,如果漏掉了这一步,那么springboot是不会识别到你的mapper的,启动会报错;

拿刚才那个例子:在这里插入图片描述

标签:逆向,autoGenerator,生成,plus,dataSourceConfig,packageConfig,Mybatis,main,模板
来源: https://blog.51cto.com/u_15166109/2718566

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有