基于springboot的人员信息管理(简单版)
立即下载
资源介绍:
基于springboot的人员信息管理(简单版)
package com.bigdata.springboot_03030418.controller;
import com.bigdata.springboot_03030418.pojo.User;
import com.bigdata.springboot_03030418.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.EntityNotFoundException;
import java.util.List;
@RestController("/userController") //"/userController"为命名空间,
//其作用为如果在不同控制器类中由相同的方法名(处理器),需要使用命名空间区分
public class UserController {
//1、第一种直接使用接口方法
//2、在接口中自定义方法
@Autowired
private UserService userService;
//1、添加用户(单添加)
@GetMapping("/addUser")
public String addUser(){
//调用服务层
return userService.addUser(new User("03","爽歪歪",15)).toString();
}
//2、查询(按非主键查询)
@GetMapping("/findUserBySAge")
public String findUserByUAge(Integer uAge){
List userByUage = userService.findUserByUAge(uAge);
if(userByUage.size()!=0){
return userService.toString();
}else {
return "数据库中无年龄为"+uAge+"岁的人";
}
}
// 3、查询并排序(针对的是全查询)
@GetMapping("/findUserAndSort")
public String findUserAndSort(){
//给出排序规则,ascending()为升序,descending()为降序
Sort sort = Sort.by("uAge").ascending();
return userService.findUserAndSort(sort).toString();
}
// 4、查询并分页(针对全查询)
@GetMapping("/findUserAndPage")
public String findUserAndPage(){
//给出分页规则,PageRequest类为PageAble接口的间接实现类,page表示的是起始页,size表示的是每页记录的数据条数
Pageable pageable = PageRequest.of(2,4);
Page userAndPage = userService.findUserAndPage(pageable);
//获取总页数
int totalPages = userAndPage.getTotalPages();
//获取总记录条数
long totalElements = userAndPage.getTotalElements();
//获取当前页码
int number = userAndPage.getNumber();
//获取当前页面记录数
int size = userAndPage.getSize();
return "总页数:"+totalPages+",总记录条数:"+totalElements+",当前页码:"+number+",当前页面记录条数:"+size;
}
//5、查询排序并分页
@GetMapping("/findAllSortAndPage")
public String findAllSortAndPage(){
//给出分页和排序规则,其中page为起始页,size为每页记录大小,Sort.by()方法给出排序规则
PageRequest sortAndPage = PageRequest.of(1, 2, Sort.by("uAge").descending());
//调用服务方法实现操作
Page allSortAndPage = userService.findAllSortAndPage(sortAndPage);
return "总共有"+allSortAndPage.getTotalPages()+"页";
}
//6、使用Example封装数据实现查询操作
@GetMapping("/findAllByExample")
public String findAllByExample(){
//将实例封装到Example中
User u = new User();
u.setUAge(18);
//将实例对象封装到Example实例中
Example example=Example.of(u);
//调用服务层实现功能
List allByExample = userService.findAllByExample(example);
return allByExample.toString();
}
//(1)使用Example封装数据实现查询操作并排序(参照任务3)
@GetMapping("/findAllByExampleAndSort")
public String findAllByExampleAndSort(){
User u = new User();
Example example = Example.of(u);
Sort sort = Sort.by("uAge").ascending();
return userService.findAllByExampleAndSort(sort).toString();
}
//(2)使用Example封装数据实现查询操作并分页(参照任务4)
@GetMapping("/findAllByExampleAndPage")
public String findAllByExampleAndPage(){
User u = new User();
u.setUAge(18);
Pageable pageable = PageRequest.of(2,4);
Page allByExampleAndPage = userService.findAllByExampleAndPage(pageable);
int totalPages = allByExampleAndPage.getTotalPages();
long totalElements = allByExampleAndPage.getTotalElements();
int number = allByExampleAndPage.getNumber();
int size = allByExampleAndPage.getSize();
return "总页数:"+totalPages+",总记录条数:"+totalElements+",当前页码:"+number+",当前页面记录条数:"+size;
}
//7、更新操作(通过姓名改变年龄)
// URL:localhost:8080/updateUAgeByUName?uName=韩梅梅&uAge=18
@GetMapping("/updateUAgeByUName")
public String updateUAgeByUName(String uName,Integer uAge){
Integer updateNum = userService.updateUAgeByUName(uName, uAge);
return "共更新了"+updateNum+"条";
}
//8、使用getOne()实现查询操作,其作用与findById类似,即为条件查询,但在结果处理上有区别
//getOne()方法如果没有查询到记录,则会报EntityNotFoundException,但findById()如果没有查询到记录
//则会返回null值,因此针对使用getOne()方法进行条件查询的情况,需要对EntityNotFoundException异常进行处理
@GetMapping("/getOneUser")
public String getOneUser(String uid){
//调用服务层
try{
//该处为可能出现异常的代码块,如果出现异常则执行catch(异常类型){}代码块,如果未出现异常,则执行try(){}代码块
User oneUser = userService.getOneUser(uid);
return oneUser.toString();
}catch (EntityNotFoundException e){
return "查无此人"+e.getMessage();
}
}
}