mybatisplus代码生成器的基本使用

1.创建springboot工程,在resources目录的application.properties写入下面配置

#服务端口
server.port=8001
#服务名
spring.application.name=service-edu

#环境设置:dev、test、prod
spring.profiles.active=dev

# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2.引入依赖

 <!--mybatis-plus-->
<dependency>
      <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--mysql-->
<dependency>
       <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        </dependency>
 <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
        <groupId>org.apache.velocity</groupId>
       <artifactId>velocity-engine-core</artifactId>
 </dependency>
 <!--swagger-->
 <dependency>
        <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
 </dependency>
 <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
 </dependency>
 <!--lombok用来简化实体类:需要安装lombok插件-->
 <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
</dependency>

3、创建MP代码生成器,并执行即完成
在test/java目录下创建包com.chang.eduservice,创建代码生成器:CodeGenerator.java

package com.chang.demo;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

/**
 * @author
 * @since 2018/12/13
 */
public class CodeGenerator {
   @Test
   public void  test01() {
     AutoGenerator mpg = new AutoGenerator(); // 1、创建代码生成器
     GlobalConfig gc = new GlobalConfig();// 2、全局配置   String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/src/main/java");
     //  1. 生成代码放在哪,可在java处右键Copy Path
     gc.setOutputDir("D:\\guli_parent02\\service\\service_edu\\src\\main\\java");
     //  2.  作者名称
     gc.setAuthor("小刚  testjava");
     gc.setOpen(false); //生成后是否打开资源管理器,没什么用
     gc.setFileOverride(false); //重新生成时文件是否覆盖,默认即可

     //  3.  去掉Service接口的首字母I,本来是IUserService现在是UserService
      gc.setServiceName("%sService");


    //  4. 注意选择好============== 主键策略,IdType.ID_WORKER用于数据库表主键为Integer类型的,IdType.ID_WORKER_Str是用于数据库表主键为String类型的
    gc.setIdType(IdType.ID_WORKER_STR);
    gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
    gc.setSwagger2(true);//开启Swagger2模式
     mpg.setGlobalConfig(gc);


    DataSourceConfig dsc = new DataSourceConfig(); // 3、数据源配置
     // 5.  url
     dsc.setUrl("jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8");
   dsc.setDriverName("com.mysql.cj.jdbc.Driver");
     // 6.  用户名
  dsc.setUsername("root");
   // 7. 密码
    dsc.setPassword("root");
   //  8. 数据库类型
    dsc.setDbType(DbType.MYSQL);
    mpg.setDataSource(dsc);


   PackageConfig pc = new PackageConfig();//4、包配置
   //   9.包名公共部分
    pc.setParent("com.atguigu");
    //  10. com.atguigu.edu
    pc.setModuleName("edu"); //模块名
    //   11.com.atguigu.controller
    pc.setController("controller");
    //  12 com.atguigu.entity
   pc.setEntity("entity");
    //  13 com.atguigu.service
    pc.setService("service");
    //  14 com.atguigu.mapper
    pc.setMapper("mapper");
    mpg.setPackageInfo(pc);

  StrategyConfig strategy = new StrategyConfig();// 5、策略配置
   //  15 要生成的代码对应哪个表,多个表可以这样写   strategy.setInclude("edu_teacher""","","");
  strategy.setInclude("edu_teacher");
                strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
  strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

                strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
 strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

  strategy.setRestControllerStyle(true); //restful api风格控制器
  strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

   mpg.setStrategy(strategy);

    mpg.execute(); // 6、执行

  }
            
}

4.创建配置类,扫描的dao层接口包名

@Component
@MapperScan("com.chang.edu.mapper")
public class EduConfig {
}

5.要在pom文件中加下面,以免启动类无法启动或者xml文件无法识别

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
        <!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
        <resources>
            <resource>
              <directory>src/main/java</directory>
                <includes>
                 <include>**/*.xml</include>
                </includes>
             <filtering>false</filtering>
           </resource>
        </resources>
    </build>

6.可以在controller调用各种方法,至此即结束,其它方法在controller中的具体使用可参考这个博客其它文章
https://blog.csdn.net/weixin_46258873/article/details/114284286?spm=1001.2014.3001.5501

@RestController
@RequestMapping("/edu/teacher")
public class TeacherController {

    @Autowired
    private TeacherService teacherService;

    @RequestMapping("/finalAll")
    public  List<Teacher> finalAllTeacher(){
        return  teacherService.list(null);
    }

}

版权声明:本文为weixin_46258873原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。