1、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!--mybatis plus和springboot整合-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.6</version>
</dependency>
2、配置指定缓存类型
在主配置文件中配置
3、启动类开启缓存注解
@EnableCaching
4、配置数据库连接
#==========数据库的配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/xdclass_user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password:
# 配置plus打印日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
之后就是从dao层开始编写代码
dao层
@TableName("product")
@Data
public class ProductDao {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 标题
*/
private String title;
/**
* 封⾯图
*/
private String coverImg;
/**
* 详情
*/
private String detail;
/**
* 新价格
*/
private Integer amount;
/**
* 库存
*/
private Integer stock;
/**
* 创建时间
*/
private Date createTime;
}
mapper
@Mapper
public interface ProductMapper extends BaseMapper<ProductDao> {
}
@Service
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductMapper productMapper;
@Override
public int save(ProductDao productDao) {
return productMapper.insert(productDao);
}
@Override
public int delById(int id) {
return productMapper.deleteById(id);
}
@Override
public int updateById(ProductDao productDao) {
return productMapper.updateById(productDao);
}
@Override
public ProductDao findById(int id) {
return productMapper.selectById(id);
}
@Override
@Cacheable(value = {"product_page"},key = "#root.methodName+'_'+#size")
public Map<String, Object> page(int page, int size) {
Page page1 = new Page(page,size);
Page Ipage = productMapper.selectPage(page1, null);
Map<String,Object> pageMap = new HashMap<>(3);
pageMap.put("total",Ipage.getTotal());
pageMap.put("total_page",Ipage.getPages());
pageMap.put("currendate",Ipage.getRecords());
return pageMap;
}
}
@RestController
@RequestMapping("/api/v1/video")
public class VideoController {
@Autowired
private ProductService productService;
//模拟增加一条记录
@PostMapping("add")
public JsonDate add(@RequestBody ProductDao productDao){
productDao.setCreateTime(new Date());
int save = productService.save(productDao);
return JsonDate.buildSuccess(save);
}
/**
* 修改
* @param productDao
* @return
*/
@PostMapping("update")
public JsonDate update(@RequestBody ProductDao productDao){
int i = productService.updateById(productDao);
return JsonDate.buildSuccess(i);
}
// 删除
@DeleteMapping("del")
public JsonDate del(int id){
int i = productService.delById(id);
return JsonDate.buildSuccess(i);
}
@GetMapping("find")
public JsonDate fingById(int id){
ProductDao byId = productService.findById(id);
return JsonDate.buildSuccess(byId);
}
@GetMapping("page")
public JsonDate page(int page,int size){
Map<String, Object> page1 = productService.page(page, size);
return JsonDate.buildSuccess(page1);
}
}
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
// 分页插件,需要配置在configuration里面