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

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发方法,就会帮我们生成代码了!!!
Mybatis-plus自动生成代码(逆向工程????)
注意:

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

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

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

3.具体解析

通过图片我们可以发现,该生成器给我们自动生成了Service接口,以及实现类…
下面我们拿个简单类来分析一下
Mybatis-plus自动生成代码(逆向工程????)

Mybatis-plus自动生成代码(逆向工程????)
点进去进去发现:
LoginUserService继承了Iservice接口,
LoginuserServiceImpl 继承 ServiceImpl<LoginuserMapper, Loginuser>并实现了 LoginUserService接口
这里的Iservice接口和ServiceImpl<LoginuserMapper, Loginuser>是代码生成器已经帮我们生成好了的,我们点进去发现
Mybatis-plus自动生成代码(逆向工程????)
他这两个类中已经给我们封装了BaseMapper中的方法,我们只需要在controller中注入LoginUserService即可;

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

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

拿刚才那个例子:Mybatis-plus自动生成代码(逆向工程????)

上一篇:Mybatis-Plus-AutoGenerator 最详细使用方法!


下一篇:Boyer-Moore 投票算法(求众数)