如何快速上手SpringBoot整合MybatisPlus,实现增删改查?

目录

一、创建SpringBoot工程。

二、配置application.yml文件。

三、创建实体类。(Provider.java)

四、创建接口。(ProviderDao.java)

五、测试。(ProviderDaoTestCase.java)

六、结束语。


一、创建SpringBoot工程。

在Pom.xml中导入相应的坐标,这里MybatisPlus使用的是3.4.3的版本。

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

二、配置application.yml文件。

使用Druid数据源,配置MySQL连接等操作;

com.mysql.cj.jdbc.Driver这里使用的是新的驱动(旧的是com.mysql.jdbc.Driver,这里不影响);

后面sql报错可能是没有加时区,在url后面加上serverTimezone=UTC即可。

#使用Druid数据源配置mysql连接
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
      username: root
      password: root

三、创建实体类。(Provider.java)

这里使用Lombok快速开发实体类,提高代码的简洁度,不会看起来繁琐;

@Data:使用这个注解可以省去代码中的set()、get()、toString()等方法。

package com.yuhui.domain;

import lombok.Data;

import java.sql.Date;

@Data //没有有参构造方法
public class Provider {
    private Long id;
    private String proCode;
    private String proName;
    private String proDesc;
    private String proContact;
    private String proPhone;
    private String proAddress;
    private String proFax;
    private Long createdBy;
    private Date creationDate;
    private Date modifyDate;
    private Long modifyBy;
}

 注:1、使用Lombok的@Data注解要在pom.xml文件中导入相关的坐标;

        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

 2、Provider.java中定义的变量使用的是驼峰命名法,在MybatisPlus中会以下划线分隔,如第二个变量会变成pro_code,从而导致操作MySQL找不到相应的列,会报如下错误:Cause: java.sql.SQLSyntaxErrorException: Unknown column 'pro_code' in 'field list'。解决方法:在application.yml文件中配置MybatisPlus关闭驼峰命名。

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false #设置关闭mybatis_plus的驼峰命名

四、创建接口。(ProviderDao.java)

使用MybatisPlus直接继承BaseMapper接口,BaseMapper接口中提供了许多方法。注意要在ProviderDao.java中加上@Mapper注解。

package com.yuhui.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuhui.domain.Provider;
import org.apache.ibatis.annotations.Mapper;

@Mapper
//mybatis_plus开发 直接继承BaseMapper<泛型>
public interface ProviderDao extends BaseMapper<Provider> {
}

五、测试。(ProviderDaoTestCase.java)

在test.java包下创建ProviderDaoTestCase.java用来测试功能。(这里为了规范自己创建了一个测试类,也可以使用原有的测试类。)

package com.yuhui.dao;

import com.yuhui.domain.Provider;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class ProviderDaoTestCase {
    //自动注入
    @Autowired 
    private ProviderDao dao;

    // 增   
    @Test
    void testSave(){
        // 添加一条数据
        Provider provider=new Provider();
        provider.setId(17l);
        provider.setProName("北京三木堂商贸有限公司");
        provider.setProContact("张国强");
        dao.insert(provider);
        System.out.println("成功执行添加操作!");
    }

    // 删
    @Test
    void testDelete(){
        // 删除一条数据
        dao.deleteById(16);
        System.out.println("成功执行删除操作!");
    }

    //改
    @Test
    void testUpdate(){
        // 修改一条数据
        Provider provider=new Provider();
        provider.setId(17l);
        provider.setProName("深圳市泰香米业有限公司");
        provider.setProContact("张国强");
        dao.updateById(provider);
        System.out.println("成功执行修改操作!");
    }

    // 查
    void testgetById(){
        // 查询单个
        System.out.println(dao.selectById(5L));
        // 查询所有
        System.out.println(dao.selectList(null));
    }
}

注:1、记得在ProviderDaoTestCase.java中使用@Autowired注解把ProviderDao注入进来;

2、这里由于MySQL建表的原因添加数据时需设置provider.setId(17l),其实可以在application.yml文件中配置MybatisPlus使其使用数据库ID自增。

#设置mybatis_plus使用数据库ID自增,默认是assign_id
mybatis-plus:
  global-config:
    db-config:
      id-type: auto 

六、结束语。

本篇文章到此结束了,感谢大家的观看,希望能够帮助到有需要的小伙伴们,欢迎大家在评论区留言指正!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碼農陸點伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值