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
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
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
3. Objetos mapeados desde la nueva tabla de datos
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
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
2. Cree una nueva interfaz de CategoryService en el paquete de servicios
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
4. Cree una nueva clase de implementación CategoryServiceImpl de la interfaz CategoryService en el paquete com.bdu.service.impl
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
2) Motivo: la clase ProductCategoryRepositoryTest no es una clase pública
- La clase com.bdu.repository.ProductCategoryRepositoryTest no es pública.
- La clase de prueba debe tener exactamente un constructor público
después de la modificación
3) La tabla 'sell.hibernate_sequence' no existe
Antes de la modificación:
Después de la modificación: