Spring boot 中通过从 MySQL 数据库检索数据实现动态下拉列表

问题描述 投票:0回答:1

作为 Spring Boot 的初学者,我尝试通过从 MySQL 数据库检索数据并使用 Rest api 在 React 中使用该下拉列表来在 Spring Boot 中进行动态下拉列表。我如何为我的应用程序执行动态下拉菜单,逐列过滤单个表中的数据并获取以做出反应。

我尝试了多种方法,但使用了多个实体/表。我可以用单个实体/表来完成吗

java mysql reactjs spring-boot rest
1个回答
0
投票

这个问题非常模糊,但无论如何,如果你想实现你的目标,最好使用 spring data 。 首先在你的pom文件中添加这个依赖项


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

例如,您有一个名为 Customer 的实体,如下所示

@Entity
@Data
public class Customer {

@Id
@GeneratedValue(strategy=...)
private Long id;

private String name;
private String lastaName;

}

然后这是您的存储库界面,您可以在其中编写过滤器查询 就像下面这样

@Repository
public interface CustomerRepository extends JpaRepository<Customer , Long> {

List<Customer> findByName(String name);
Customer findByNameAndLastName(String name,string lastName);
}

你必须创建一个像下面这样的服务类

public class CustomerService {

private final CustomerRepository repository;

@Autowired
public CustomerService( CustomerRepository repository){

this.repository = repository;
}

public List<Customer> findCustomersByName(String name){
 return repository.findByName(name);
}

public Customer findByNameAndLastName(String name , String lastName) {
 return repository.findByNameAndLastName(name, lastName);
}
}

然后你的控制器必须如下所示


@RestController
public class CustomerController {

private finale CustomerService service;

public CustomerController( CustomerService service) {
 this.service = service;
}

@GetMapping( value = "/get-by-name" )
public ResponseEntity<?> findByName(@RequestParam String name){
 return ResponseEntity.ok(service.findByName(name);
}

@GetMapping( value = "/get-by-name-and-lastName" )
public ResponseEntity<?> findByNameAndLastName(@RequestParam String name ,@RequestParam String lastName){
 return ResponseEntity.ok(service.findByNameAndLastName(name , lastName);

}

© www.soinside.com 2019 - 2024. All rights reserved.