MybatisPlus 代码生成器

依赖

MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <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.2</version>
        </dependency>
Navicat建测试表

在这里插入图片描述
添加测试数据

在这里插入图片描述

测试类写自动生成代码
    @Test
    public  void CodeGenerator () {
        // 创建代码生成器对象
        AutoGenerator mpg = new AutoGenerator();

        // 1 全局配置
        GlobalConfig gc = new GlobalConfig();
        // 2 获取项目文件位置 绝对地址+文件位置
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("posden");
        gc.setOpen(false); // 当前文件资源管理器
        gc.setIdType(IdType.AUTO); // 设置主键策略
        gc.setServiceName("%sService"); // 自动生成的Service接口首字母I去掉
        gc.setDateType(DateType.ONLY_DATE); // 日期配置
        gc.setSwagger2(true); // 实体属性 Swagger2 注解  当然前提是你配置了swagger 不清楚的可以看我之前博客,地址附在文末
        mpg.setGlobalConfig(gc); 

        // 3 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://{ip}:3306/test?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC");
         dsc.setSchemaName("test");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("test"); // 模块名
        pc.setParent("com.example.demo"); // 父目录
        pc.setEntity("entity");
        pc.setController("controller");
        pc.setMapper("mapper");
        pc.setService("server");

        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        // strategy.setInclude("test" + "_\\w*"); // 完整路径 或 正则表达式匹配
        strategy.setInclude("test");
        strategy.setNaming(NamingStrategy.underline_to_camel); // 表名 驼峰命名转化
        strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 字段名
//        strategy.setTablePrefix("test_"); // 去除前缀
        strategy.setEntityLombokModel(true);// 自动添加lombok
        strategy.setEntityBooleanColumnRemoveIsPrefix(true); // 去除boolean值 is_
        // 自动填充
        TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
        TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);
        ArrayList<TableFill> tableFills = new ArrayList<>();
        tableFills.add(gmtCreate);
        tableFills.add(gmtModified);
        strategy.setTableFillList(tableFills);

        // 乐观锁
        strategy.setVersionFieldName("version");
        // restful
        strategy.setRestControllerStyle(true);
        //url t驼峰变 _
        strategy.setControllerMappingHyphenStyle(true);

        mpg.setStrategy(strategy);

        // 执行
        mpg.execute();
    }

结果
在这里插入图片描述

controller层编写curd restful风格

代码书写可能不严谨,欢迎指正。但功能已实现

public class TestController {

    @Resource
    private TestService testService;

    @GetMapping
    public List<Test> getList() {
       return testService.list(null);
    }

    @GetMapping("{id}")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "测试ID", dataTypeClass = String.class, required = true)
    })
    public Test getItem(@PathVariable Integer id) {
        return testService.getById(id);
    }

    @PutMapping("{id}")
    public boolean updateItem(@PathVariable Integer id, @RequestBody Test test) {

        QueryWrapper<Test> updateQueryWrapper = new QueryWrapper<>();
        updateQueryWrapper.eq("id", id);
        int count = testService.count(updateQueryWrapper);
        if(count == 1){
            return testService.updateById(test);
        }else {
            return false;
        }
    }
    @DeleteMapping("{id}")
    public boolean deleteItem(@PathVariable Integer id) {
        QueryWrapper<Test> updateQueryWrapper = new QueryWrapper<>();
        updateQueryWrapper.eq("id", id);
        int count = testService.count(updateQueryWrapper);
        if(count == 1){
            return testService.removeById(id);
        }else {
            return false;
        }
    }
    @PostMapping
    public boolean createItem(@RequestBody Test test) {
        return testService.save(test);
    }
}


在这里插入图片描述
在这里插入图片描述
SpringBoot2集成swagger3

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值