根据以上代码,帮我写一个关于姓名查询,全词模糊查询,拼音查询,员工编码查询的接口实现类和controller RoublePersonnelPool的字段有参数类型的属性有numbleId(序号),roubleUnit(隶属单位),roubleBumen(部门),roubleName(人员名称),roubleID(编号)。
时间: 2024-04-14 11:26:29 浏览: 85
实现输入拼音或者简码模糊查询数据库某个字段的值
5星 · 资源好评率100%
好的,下面是关于姓名查询,全词模糊查询,拼音查询和员工编码查询的接口实现类和 controller 的示例代码:
```java
// RoublePersonnelPoolService.java
public interface RoublePersonnelPoolService {
List<RoublePersonnelPool> searchByFullName(String fullName);
List<RoublePersonnelPool> searchByKeyword(String keyword);
List<RoublePersonnelPool> searchByPinyin(String pinyin);
List<RoublePersonnelPool> searchByEmployeeCode(String employeeCode);
}
// RoublePersonnelPoolServiceImpl.java
@Service
public class RoublePersonnelPoolServiceImpl implements RoublePersonnelPoolService {
@Autowired
private RoublePersonnelPoolRepository repository;
@Override
public List<RoublePersonnelPool> searchByFullName(String fullName) {
Specification<RoublePersonnelPool> spec = (root, query, builder) ->
builder.equal(root.get("roubleName").as(String.class), fullName);
return repository.findAll(spec);
}
@Override
public List<RoublePersonnelPool> searchByKeyword(String keyword) {
Specification<RoublePersonnelPool> spec = (root, query, builder) ->
builder.like(root.get("roubleName").as(String.class), "%" + keyword + "%");
return repository.findAll(spec);
}
@Override
public List<RoublePersonnelPool> searchByPinyin(String pinyin) {
Specification<RoublePersonnelPool> spec = (root, query, builder) ->
builder.like(root.get("roubleName").as(String.class), "%" + pinyin + "%");
return repository.findAll(spec);
}
@Override
public List<RoublePersonnelPool> searchByEmployeeCode(String employeeCode) {
Specification<RoublePersonnelPool> spec = (root, query, builder) ->
builder.equal(root.get("roubleID").as(String.class), employeeCode);
return repository.findAll(spec);
}
}
// RoublePersonnelPoolController.java
@RestController
@RequestMapping("/personnel")
public class RoublePersonnelPoolController {
@Autowired
private RoublePersonnelPoolService service;
@GetMapping("/search/fullname")
public List<RoublePersonnelPool> searchByFullName(@RequestParam("name") String fullName) {
return service.searchByFullName(fullName);
}
@GetMapping("/search/keyword")
public List<RoublePersonnelPool> searchByKeyword(@RequestParam("keyword") String keyword) {
return service.searchByKeyword(keyword);
}
@GetMapping("/search/pinyin")
public List<RoublePersonnelPool> searchByPinyin(@RequestParam("pinyin") String pinyin) {
return service.searchByPinyin(pinyin);
}
@GetMapping("/search/employeecode")
public List<RoublePersonnelPool> searchByEmployeeCode(@RequestParam("code") String employeeCode) {
return service.searchByEmployeeCode(employeeCode);
}
}
```
在上面的代码中,我们定义了一个 `RoublePersonnelPoolService` 接口来声明要实现的四个查询方法。然后,我们在 `RoublePersonnelPoolServiceImpl` 类中实现了这些方法,并使用 `Specification` 来构建动态查询条件,并调用 `repository.findAll(spec)` 方法执行查询。
最后,在 `RoublePersonnelPoolController` 类中定义了四个接口来对外提供查询功能,使用 `@GetMapping` 注解来映射请求路径,并通过 `@RequestParam` 注解来获取请求参数。这样,当我们访问相应的接口时,就可以调用对应的查询方法并返回查询结果了。
请注意,上述代码仅为示例,你需要根据实际情况修改相应的类名、字段名、请求路径等。另外,还需要确保已经定义了 `RoublePersonnelPoolRepository` 接口和相应的数据库操作方法。
阅读全文