当前位置:   article > 正文

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

springbootmybatisplus增删改查

目录

一、创建SpringBoot工程。

二、配置application.yml文件。

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

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

五、测试。(ProviderDaoTestCase.java)

六、结束语。


一、创建SpringBoot工程。

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

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>3.4.3</version>
  5. </dependency>

二、配置application.yml文件。

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

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

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

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

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

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

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

  1. package com.yuhui.domain;
  2. import lombok.Data;
  3. import java.sql.Date;
  4. @Data //没有有参构造方法
  5. public class Provider {
  6. private Long id;
  7. private String proCode;
  8. private String proName;
  9. private String proDesc;
  10. private String proContact;
  11. private String proPhone;
  12. private String proAddress;
  13. private String proFax;
  14. private Long createdBy;
  15. private Date creationDate;
  16. private Date modifyDate;
  17. private Long modifyBy;
  18. }

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

  1. <!--lombok-->
  2. <dependency>
  3. <groupId>org.projectlombok</groupId>
  4. <artifactId>lombok</artifactId>
  5. </dependency>

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

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

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

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

  1. package com.yuhui.dao;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.yuhui.domain.Provider;
  4. import org.apache.ibatis.annotations.Mapper;
  5. @Mapper
  6. //mybatis_plus开发 直接继承BaseMapper<泛型>
  7. public interface ProviderDao extends BaseMapper<Provider> {
  8. }

五、测试。(ProviderDaoTestCase.java)

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

  1. package com.yuhui.dao;
  2. import com.yuhui.domain.Provider;
  3. import org.junit.jupiter.api.Test;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.context.SpringBootTest;
  6. @SpringBootTest
  7. public class ProviderDaoTestCase {
  8. //自动注入
  9. @Autowired
  10. private ProviderDao dao;
  11. // 增
  12. @Test
  13. void testSave(){
  14. // 添加一条数据
  15. Provider provider=new Provider();
  16. provider.setId(17l);
  17. provider.setProName("北京三木堂商贸有限公司");
  18. provider.setProContact("张国强");
  19. dao.insert(provider);
  20. System.out.println("成功执行添加操作!");
  21. }
  22. // 删
  23. @Test
  24. void testDelete(){
  25. // 删除一条数据
  26. dao.deleteById(16);
  27. System.out.println("成功执行删除操作!");
  28. }
  29. //改
  30. @Test
  31. void testUpdate(){
  32. // 修改一条数据
  33. Provider provider=new Provider();
  34. provider.setId(17l);
  35. provider.setProName("深圳市泰香米业有限公司");
  36. provider.setProContact("张国强");
  37. dao.updateById(provider);
  38. System.out.println("成功执行修改操作!");
  39. }
  40. // 查
  41. void testgetById(){
  42. // 查询单个
  43. System.out.println(dao.selectById(5L));
  44. // 查询所有
  45. System.out.println(dao.selectList(null));
  46. }
  47. }

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

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

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

六、结束语。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/598302
推荐阅读
相关标签
  

闽ICP备14008679号