目录
一、创建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
六、结束语。
本篇文章到此结束了,感谢大家的观看,希望能够帮助到有需要的小伙伴们,欢迎大家在评论区留言指正!