赞
踩
目录
五、测试。(ProviderDaoTestCase.java)
在Pom.xml中导入相应的坐标,这里MybatisPlus使用的是3.4.3的版本。
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.4.3</version>
- </dependency>
使用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
这里使用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的驼峰命名
使用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> {
- }
在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
本篇文章到此结束了,感谢大家的观看,希望能够帮助到有需要的小伙伴们,欢迎大家在评论区留言指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。