Sistema de pedidos de WeChat Capítulo 4 - Categoría del comprador

1. Agregar dependencias

1. Controlador Mysql agregado (dependencia de Mysql)

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

2. Herramientas para operar la base de datos (spring-boot-starter-data-jpa)

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

3. Herramientas para escribir automáticamente métodos getter y setter

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

Debe usarse con el complemento lombok
inserte la descripción de la imagen aquí

En segundo lugar, configure la información de la base de datos.

1. Busque el archivo application.properties en el archivo de recursos y modifique su sufijo a .yml
. Nota: ¿Por qué usar el formato .yml en lugar del formato .properties?
Porque el formato .yml puede hacer que la configuración sea más concisa
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
2. Configurar la información de la base de datos

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

inserte la descripción de la imagen aquí

3. Objetos mapeados desde la nueva tabla de datos

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

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;
  }
}

4. capa Dao

1. Cree un nuevo paquete llamado com.bdu.repository
inserte la descripción de la imagen aquí
2. Cree una nueva interfaz ProductCategoryRepository en el paquete del repositorio para heredar JpaRepository
3. Escriba código

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);
}

Cinco, capa de servicio

1. Cree un nuevo paquete llamado com.bdu.service
inserte la descripción de la imagen aquí
2. Cree una nueva interfaz de CategoryService en el paquete de servicios
inserte la descripción de la imagen aquí

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. Cree un nuevo paquete com.bdu.service.impl para almacenar la clase de implementación de la interfaz
inserte la descripción de la imagen aquí
4. Cree una nueva clase de implementación CategoryServiceImpl de la interfaz CategoryService en el paquete com.bdu.service.impl
inserte la descripción de la imagen aquí

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);
    }
}

6. Errores encontrados

1) java: el método findOne en la interfaz org.springframework.data.repository.query.QueryByExampleExecutor no se puede aplicar al tipo dado;
inserte la descripción de la imagen aquí

2) Motivo: la clase ProductCategoryRepositoryTest no es una clase pública

  1. La clase com.bdu.repository.ProductCategoryRepositoryTest no es pública.
  2. La clase de prueba debe tener exactamente un constructor público inserte la descripción de la imagen aquí
    después de la modificación
    inserte la descripción de la imagen aquí

3) La tabla 'sell.hibernate_sequence' no existe
inserte la descripción de la imagen aquí
Antes de la modificación:
inserte la descripción de la imagen aquí
Después de la modificación:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Silly011/article/details/122543447
Recomendado
Clasificación