首页 > 其他 > 详细

mybatis-plus 代码生成器

时间:2021-04-18 22:03:49      阅读:28      评论:0      收藏:0      [点我收藏+]

mybatis-plus 代码生成器

导入依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.baomidou/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-engine-core</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>

编写代码生成器

public class CodeGenerator {
    public static void main(String[] args) {
        //创建自动生成对象
        AutoGenerator autoGenerator = new AutoGenerator();
        //添加全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        //获取项目路径
        String path = System.getProperty("user.dir");
        //设置输出目录
        globalConfig.setOutputDir(path + "/src/main/java");
        globalConfig.setAuthor("immortal");
        globalConfig.setOpen(false);
        globalConfig.setFileOverride(false);
        globalConfig.setServiceName("%sService");
        globalConfig.setIdType(IdType.ID_WORKER);
        globalConfig.setDateType(DateType.ONLY_DATE);
        //swagger 配置
//        globalConfig.setSwagger2(true);
        //设置global
        autoGenerator.setGlobalConfig(globalConfig);

        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        dataSourceConfig.setDbType(DbType.MYSQL);
        //设置数据源
        autoGenerator.setDataSource(dataSourceConfig);

        PackageConfig packageConfig = new PackageConfig();

        packageConfig.setModuleName("blog");
        packageConfig.setParent("com.immortal.mybatisplusgenerator");
        packageConfig.setEntity("pojo");
        packageConfig.setMapper("mapper");
        packageConfig.setService("service");
        packageConfig.setController("controller");
        //设置包配置
        autoGenerator.setPackageInfo(packageConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        //设置生成的表
        strategy.setInclude("user");
        //开启驼峰
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        //lombok生成
        strategy.setEntityLombokModel(true);
        //伪删除字段
        strategy.setLogicDeleteFieldName("deleted");
        //设置填充属性
        TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
        TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
        ArrayList<TableFill> tableFills = new ArrayList<TableFill>();
        tableFills.add(create_time);
        tableFills.add(update_time);
        strategy.setTableFillList(tableFills);
        //乐观锁字段
        strategy.setVersionFieldName("version");
        //设置配置策略
        autoGenerator.setStrategy(strategy);
        strategy.setRestControllerStyle(true);
        strategy.setControllerMappingHyphenStyle(true);
        //执行
        autoGenerator.execute();

    }
}

生成后的项目结构

技术分享图片

测试 yaml 文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/mybatis-plus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    logic-delete-field: deleted
    logic-delete-value: 1
    logic-not-delete-value: 0

加上mybatis-plus 的配置类

@Configuration
public class MybatisPlusConfig {

    //分页插件
    @Bean
    public PaginationInnerInterceptor paginationInterceptor(){
        return new PaginationInnerInterceptor();
    }


    //乐观锁插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

测试 controller

@RestController
@RequestMapping("/blog/user")
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping("/list")
    public String list(){
        List<User> list = userService.list();
        return JSON.toJSONString(list);
    }

    @RequestMapping("/update")
    public String update(){
        User user = new User();
        user.setName("immortal");
        user.setId(1L);
        userService.updateById(user);
        return "更新用户" + JSON.toJSONString(user);
    }

    @RequestMapping("/insert")
    public String insert(){
        User user = new User();
        user.setName("test/" + UUID.randomUUID());
        userService.save(user);
        return "添加用户: " + JSON.toJSONString(user);
    }

    @RequestMapping("/delete/{id}")
    public String delete(@PathVariable("id") long id){
        if (id<=0){
            return "error request";
        }
        if (null == userService.getById(id)){
            return "does not exist";
        }
        userService.removeById(id);
        return "用户已被删除!";
    }

}

127.0.0.1:8080/blog/user/list 测试即可

mybatis-plus 代码生成器

原文:https://www.cnblogs.com/immortal-mode/p/14674419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!