SpringBoot、MyBatis-plus自动生成代码,通过PostMan测试自动生成代码的CRUD功能

1、创建一个数据库,在下面创建两张表,table_user与table_country。并向内添加数据。

 

 

 

2、创建一个空工程,将maven设为自己本地的 

3、创建一个新的spring模块,选择配置,选择web下的springweb与SQL下的MySQL Driver和MyBatis Framework

 

 

4、pom中添加依赖,在原有依赖的基础上添加如下依赖

<!--        mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
<!--        druid依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.3</version>
        </dependency>
<!--        lombok简化实体类书写依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--        代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!--        velocity模版引擎-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

5、resources文件下的application.properties改为 application.yml,添加数据库配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/db3
    username: root
    password: 900819
#    添加druid连接池
    type: com.alibaba.druid.pool.DruidDataSource
#    隐藏spring的logo
  main:
    banner-mode: off
mybatis-plus:
  global-config:
#    隐藏mybatis的logo
    banner: false
  configuration:
#    添加日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

6、创建自动生成代码的类,mybatis-plus官网有源码

 

AutoGenerator autoGenerator = new AutoGenerator();

//数据库配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/db3");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("900819");
autoGenerator.setDataSource(dataSourceConfig);

//全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("/Users/jokairin/IdeaProjects/SpringBoot-MyBatis-Plus-Test/springboot-MyBatis-P/src/main/java");
globalConfig.setOpen(false);//设置不打开创建好的文件
globalConfig.setAuthor("aloneFox");//设置作者
globalConfig.setFileOverride(true);//设置是否覆盖原文件
globalConfig.setMapperName("%sDao");//设置数据层接口名,%s代表占位符号,代表模块名称(Country,User)
globalConfig.setIdType(IdType.AUTO);//设置id生成策略
autoGenerator.setGlobalConfig(globalConfig);

//包名相关配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.xu");//设置生成的包
packageConfig.setEntity("domain");//设置实体类包名
packageConfig.setMapper("dao");//设置数据层包名
autoGenerator.setPackageInfo(packageConfig);

//策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("table_user","table_country");//设置当前参与生成的表名,参数为可变参数
strategyConfig.setTablePrefix("table_");//设置数据库表的前缀,模块名=数据库表名-前缀名
strategyConfig.setRestControllerStyle(true);//设置是否启用rest风格
strategyConfig.setVersionFieldName("version");//设置乐观锁字段名
strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名
strategyConfig.setEntityLombokModel(true);//设置是否启用lombok
autoGenerator.setStrategy(strategyConfig);

autoGenerator.execute();

7、运行第6步写的程序,便会创建如下代码

8、dao下的所有接口添加@Mapper注解,使其可以被扫描到

 

 

9、以UserController为例,在UserController中添加CRUD功能

 

 

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

    @Autowired
    private IUserService userService;

    /**
     * 增加
     * @param user
     * @return
     */
    @PostMapping
    public String save(@RequestBody User user)
    {
        boolean flag = userService.save(user);
        String result = flag?"添加成功":"添加失败";
        return result;
    }

    /**
     * 通过id删除
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    public String deleteById( @PathVariable Integer id)
    {
        boolean flag = userService.removeById(id);
        String result = flag?"删除成功":"删除失败";
        return result;
    }

    /**
     * 修改数据
     * @param user
     * @return
     */
    @PutMapping()
    public String Update(@RequestBody User user)
    {
        boolean flag = userService.updateById(user);
        String result = flag?"修改成功":"修改失败";
        return result;
    }

    /**
     * 查询所有
     * @return
     */
    @GetMapping
    public List<User> getAll()
    {
        List<User> list = userService.list();
        return list;
    }

    /**
     * 通过id查询
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public User getById(@PathVariable Integer id)
    {
        User user = userService.getById(id);
        return user;
    }

}

10、后台功能已经完成,现在在postman中定义一些接口进行测试。

     a、添加功能测试

postman中提示添加成功       

 idea日志可以看到添加成功的sql语句

 通过命令行查看表,数据成功添加

b、删除功能测试

postman提示删除成功

idea日志可以看到删除成功的sql语句  

 

通过命令行查看,表中数据已被标记为deleted为1 

 c、修改功能测试

将id为1022的刘备改为刘玄德,postman中提示修改成功

idea的日志中可以看到修改成功 

 

d、查找全部功能测试

可以看到已经删除掉的1023 是不在全部查找范围内

 

 

 

 

e、通过id查找,查找1001与已经被删除掉的1023

 

 

可以看到1001可以被查到,而被标记为deleted的1023没有查到。 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值