目录

一、创建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

六、结束语。

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