作为 Spring Boot 的初学者,我尝试通过从 MySQL 数据库检索数据并使用 Rest api 在 React 中使用该下拉列表来在 Spring Boot 中进行动态下拉列表。我如何为我的应用程序执行动态下拉菜单,逐列过滤单个表中的数据并获取以做出反应。
我尝试了多种方法,但使用了多个实体/表。我可以用单个实体/表来完成吗
这个问题非常模糊,但无论如何,如果你想实现你的目标,最好使用 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);
}