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

本文详细介绍了如何将Mybatis-Plus代码生成器与SpringBoot项目结合,包括引入依赖、配置插件、配置YML文件、生成代码及具体代码实现。通过这个教程,你可以快速实现CRUD操作并自动生成对应的实体类、Mapper和XML文件,提升开发效率。
摘要由CSDN通过智能技术生成

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


前言

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

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


一、Mybatis-Plus是什么?

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

二、使用步骤

1.引入依赖

代码如下(示例):

    <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.2</version>
    </dependency>

2.引入插件

代码如下(示例):

下面展示一些 内联代码片

		<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <!--这里跟上面的版本要一致-->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.21</version>
                    </dependency>
                </dependencies>
            </plugin>

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)

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆盖生成XML文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

        <!-- 生成的实体类添加toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

        <!-- 不生成注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/exam?useSSL=false&amp;serverTimezone=UTC"
                        userId="root"
                        password="123">
        </jdbcConnection>

        <!-- domain类的位置 -->
        <javaModelGenerator targetProject="src\main\java"
                            targetPackage="com.bgs.demo_springboot.domain"/>

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src\main\resources"
                         targetPackage="Mapper"/>

        <!-- mapper类的位置 -->
        <javaClientGenerator targetProject="src\main\java"
                             targetPackage="com.bgs.demo_springboot.mapper"
                             type="XMLMAPPER" />

        <!--都是表名
        	将要生成的表名和实体类写到这里
		-->
       			 <table tableName="student" domainObjectName="Student"/>
    </context>
    <!--
        添加Maven命令
    mybatis-generator:generate -e
    -->
</generatorConfiguration>

5.最后点击插件生成

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

三、具体代码实现

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<Student> students = studentMapper.selectByExample(studentExample);
        PageInfo<Student> pageInfo=new PageInfo<>(students);
        pageInfo.setTotal(pageInfo.getTotal());
        List<StudentDto> 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.代码的具体实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值