使用springboot写一个多条件搜索功能
时间: 2024-03-01 15:44:51 浏览: 69
以下是一个使用Spring Boot实现多条件搜索的示例代码:
1. 创建一个实体类,例如Product.java,包含需要搜索的字段:
```
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private Double price;
private Integer quantity;
// getters and setters
}
```
2. 创建一个Repository接口,例如ProductRepository.java,继承JpaRepository:
```
@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
List<Product> findByNameContainingAndDescriptionContainingAndPriceBetweenAndQuantityGreaterThanEqual(
String name, String description, Double minPrice, Double maxPrice, Integer minQuantity);
}
```
3. 创建一个Controller类,例如ProductController.java,注入ProductRepository:
```
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductRepository productRepository;
@GetMapping
public List<Product> searchProducts(
@RequestParam(required = false) String name,
@RequestParam(required = false) String description,
@RequestParam(required = false) Double minPrice,
@RequestParam(required = false) Double maxPrice,
@RequestParam(required = false) Integer minQuantity) {
return productRepository.findByNameContainingAndDescriptionContainingAndPriceBetweenAndQuantityGreaterThanEqual(
name != null ? name : "",
description != null ? description : "",
minPrice != null ? minPrice : Double.MIN_VALUE,
maxPrice != null ? maxPrice : Double.MAX_VALUE,
minQuantity != null ? minQuantity : 0);
}
}
```
4. 启动应用程序并访问http://localhost:8080/products?name=abc&minPrice=10,可以根据需要添加其他查询参数。
这个示例只是最基本的多条件搜索实现,您可以根据自己的需求添加更多字段和查询条件,并使用其他查询方法(例如使用@Query注释)来自定义查询。
阅读全文