mybatis-plus + generator代码生成器 和 spring boot集成

mybatis-plus + generator代码生成器 和 spring boot集成


前言

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

它已经封装好了一些crud方法,对于非常常见的一些sql我们不用写xml了,直接调用这些方法就行,但它也是支持我们自己手动写xml。 这里我提前建好了springboot项目!


一、Mybatis-Plus是什么?

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

二、使用步骤

1.引入依赖

代码如下(示例):

    
    
        com.baomidou
        mybatis-plus-boot-starter
        3.3.2
    

2.引入插件

代码如下(示例):

下面展示一些 内联代码片

		
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.7
                
                    src/main/resources/generator/generatorConfig.xml
                    true
                    true
                
                
                    
                    
                        mysql
                        mysql-connector-java
                        8.0.21
                    
                
            

3.配置yml

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/exam?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
    username: root
    password: 123
  servlet:
    multipart:
      enabled: true
      max-file-size: 20MB
      max-request-size: 20MB
server:
  port: 8080
  supportMethodsArguments: true
  params: count=countSql

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

4.配置生成代码的路径(generatorConfig.xml)

mybatis-plus + generator代码生成器 和 spring boot集成_第1张图片





    

        
        

        
        

        
        

        
        
            
        

        
        

        
        

        
        

        
        

        
       			 

5.最后点击插件生成

mybatis-plus + generator代码生成器 和 spring boot集成_第2张图片
最后就生成了四个文件,分别是实体类,example(mybatis-generator会为每个字段产生Criterion,为底层的mapper.xml创建动态sql。如果表的字段比较多,产生的example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了),mapper,mapper.xml
mybatis-plus + generator代码生成器 和 spring boot集成_第3张图片

三、具体代码实现

1.前端

//全查分页,tips($ajax 为 $axios 这里用的是post请求)
	findAll(page){
      let _this=this
      this.$ajax.post("http://127.0.0.1:8081/findAll",{
        page:page,
        size:_this.$refs.pagination.size,
      }).then(res => {
        //全查
        this.tableData = res.data.content.list
        _this.$refs.pagination.render(page, res.data.content.total);
      })
    },
    //编辑
    saveStu(addAll){
      let _this = this;
      _this.$ajax.post("http://127.0.0.1:8081/addStu",addAll).then((response)=>{

        let resp = response.data;
        if(resp.success){
          _this.dialogFormUpdateVisible=false
          _this.findAll(1);
        }else{
          _this.dialogFormUpdateVisible=false
        }
      })
    },
    //删除
    delStu(stuId){
      this.$ajax.get('http://127.0.0.1:8081/delStu',{
        params:{stuId:stuId}
      }).then(res => {
        //全查
        this.findAll(1)
      })
    }

2.后端service

@Resource
    private StudentMapper studentMapper;
    //分页全查
    public void findAll(PageDto pageDto) {
        StudentExample studentExample=new StudentExample();
        PageHelper.startPage(pageDto.getPage(),pageDto.getSize());
        List students = studentMapper.selectByExample(studentExample);
        PageInfo pageInfo=new PageInfo<>(students);
        pageInfo.setTotal(pageInfo.getTotal());
        List list= CopyUtil.copyList(students,StudentDto.class);
        pageDto.setList(list);
    }
    //添加
    public void addStu(Student student) {
        studentMapper.insert(student);
    }
    //修改
    public void updateStu(Student student) {
        studentMapper.updateByPrimaryKey(student);
    }
    //删除
    public void delStu(Integer stuId) {
        studentMapper.deleteByPrimaryKey(stuId);
    }

    //模糊查(这里用到了example 因为生成的代码只能做到基础的全查,根据条件查,而这里就需要运用example 来对sql进行拼接,用到了createCriteria(),里面有很多方法,根据需求进行拼接即可!!)
    public void findAllLikeName(String stuName) {
        StudentExample studentExample=new StudentExample();
        studentExample.createCriteria().andStuNameLike("%"+stuName+"%");
        studentMapper.selectByExample(studentExample);
        System.out.println(studentMapper.selectByExample(studentExample));
    }

总结

1.引入依赖
2.引入插件
3.配置yml
4.配置生成代码的路径(generatorConfig.xml)
5.最后点击插件生成
6.代码的具体实现

你可能感兴趣的:(java,后端)