微信点餐系统第四章-买家类目

一、添加依赖

1.新增Mysql驱动(Mysql依赖)

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
 </dependency>

2.操作数据库的工具(spring-boot-starter-data-jpa)

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
 </dependency>

3.自动写getter和setter方法的工具

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
 </dependency>

需要配合lombok插件使用
在这里插入图片描述

二、配置数据库信息

1.找到resources文件下的application.properties文件,并修改其后缀名为 .yml
注:为什么使用.yml格式而不是.properties格式?
因为.yml格式可以使配置更加简洁
在这里插入图片描述

在这里插入图片描述
2.配置数据库信息

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://192.168.5.38:3306/sell?characterEncoding=utf-8&useSSL=false
  jpa:
    show-sql: true

在这里插入图片描述

三、新建数据表映射过来的对象

在这里插入图片描述

在这里插入图片描述

package com.bdu.dataobject;


import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;


@Entity
@DynamicUpdate
@Data
public class ProductCategory {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer categoryId;
  private String categoryName;
  private Integer categoryType;

  public ProductCategory() {
  }

  public ProductCategory(String categoryName, Integer categoryType) {
    this.categoryName = categoryName;
    this.categoryType = categoryType;
  }
}

四、Dao层

1.新建一个包,命名为com.bdu.repository
在这里插入图片描述
2.在repository包下新建ProductCategoryRepository接口继承JpaRepository
3.编写代码

package com.bdu.repository;

import com.bdu.dataobject.ProductCategory;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @author wanqing
 * @date 2022/1/17 17:26
 */
public interface ProductCategoryRepository extends JpaRepository<ProductCategory,Integer> {
//            查看类目列表
    List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryType);
}

五、service层

1.新建一个包命名为com.bdu.service
在这里插入图片描述
2.在service包中新建CategoryService接口
在这里插入图片描述

package com.bdu.service;

import com.bdu.dataobject.ProductCategory;

import java.util.List;

public interface CategoryService {

    //查询一条记录
    ProductCategory findOne(Integer categoryId);

    //查看类目列表
    List<ProductCategory> findAll();

    //买家端
    List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList);

    //卖家端-新增、更新
    ProductCategory save(ProductCategory productCategory);

}


3.新建com.bdu.service.impl包存放接口实现类
在这里插入图片描述
4.在com.bdu.service.impl包中新建CategoryService接口的实现类CategoryServiceImpl
在这里插入图片描述

package com.bdu.service.impl;

import com.bdu.dataobject.ProductCategory;
import com.bdu.repository.ProductCategoryRepository;
import com.bdu.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CategoryServiceImpl implements CategoryService {

    @Autowired
    private ProductCategoryRepository repository;

    @Override
    public ProductCategory findOne(Integer categoryId) {
//        return repository.findById(categoryId).get();

        return repository.findById(categoryId).get();
    }

    @Override
    public List<ProductCategory> findAll() {
        return repository.findAll();
    }

    @Override
    public List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList) {
        return repository.findByCategoryTypeIn(categoryTypeList);
    }

    @Override
    public ProductCategory save(ProductCategory productCategory) {
        return repository.save(productCategory);
    }
}

六、遇到的错误

1)java: 无法将接口 org.springframework.data.repository.query.QueryByExampleExecutor中的方法 findOne应用到给定类型;
在这里插入图片描述

2) 原因:ProductCategoryRepositoryTest类不是public类

  1. The class com.bdu.repository.ProductCategoryRepositoryTest is not public.
  2. Test class should have exactly one public constructor在这里插入图片描述
    修改后
    在这里插入图片描述

3)Table ‘sell.hibernate_sequence’ doesn’t exist
在这里插入图片描述
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值