jpa中数据的增删改查
@Entity
@Data
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String author;
}
mapper***************
public interface BookRepository extends JpaRepository {
}
controller
@RestController
@RequestMapping("/book")
public class BookHandler {
@Autowired
private BookRepository bookRepository;
分页查询
@GetMapping("/findAll/{page}/{size}")
public Page findAll(@PathVariable("page") Integer page, @PathVariable("size") Integer size){
PageRequest request = PageRequest.of(page,size);
return bookRepository.findAll(request);
}
新增
@PostMapping("/save")
public String save(@RequestBody Book book){
Book result = bookRepository.save(book);
if(result != null){
return "success";
}else{
return "error";
}
}
依据id查询
@GetMapping("/findById/{id}")
public Book findById(@PathVariable("id") Integer id){
return bookRepository.findById(id).get();
}
更新
@PutMapping("/update")
public String update(@RequestBody Book book){
Book result = bookRepository.save(book);
if(result != null){
return "success";
}else{
return "error";
}
}
删除
@DeleteMapping("/deleteById/{id}")
public void deleteById(@PathVariable("id") Integer id){
bookRepository.deleteById(id);
}
}
跨域问题解决办法
@Configuration
public class CrosConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("
@Override
public void saveUser(User user) {
//验证用户名
AssertUtil.isTrue( StringUtils.isBlank(user.getUserName()),"用户名不能为空");
//用户密码
AssertUtil.isTrue(StringUtils.isBlank(user.getUserPwd()),"用户密码不能为空");
//用户是否存在
User temp = usermapper.selectUserByName(user.getUserName());
AssertUtil.isTrue(temp!=null,"用户已经存在");
//用户添加是否成功
AssertUtil.isTrue(usermapper.insertUser(user)<1,"添加失败了");
}
// 修改操作
@Override
public void changeUser(User user) {
AssertUtil.isTrue( StringUtils.isBlank( user.getUserName() ),"用户名不为空" );
AssertUtil.isTrue( StringUtils.isBlank( user.getUserPwd() ),"密码不为空" );
User temp = usermapper.selectuserbyid(user.getUserId());
AssertUtil.isTrue( temp == null,"用户不存在");
AssertUtil.isTrue( usermapper.updateUser(user)<1,"修改失败了");
}
@Override
public void removeUserById(Integer userId) {
AssertUtil.isTrue( userId==null|| null==usermapper.selectuserbyid( userId ),"待删除数据不存在" );
AssertUtil.isTrue( usermapper.deleteUserById( userId )<1,"删除失败" );
}
@Override
public PageInfo queryUserByPage(UserQuery userQuery) {
PageHelper.startPage( userQuery.getPageNum(),userQuery.getPageSize());
List ulist = usermapper.selectUserByItem( userQuery );
PageInfo plist =new PageInfo(ulist);
return plist;
}
}
controller
@RestController
public class Usercontroller {
@Resource
private Usermapper usermapper;
@Resource
private Userservice userservice;
@GetMapping("one/{id}")
public User sayUser(@PathVariable Integer id) {
System.out.println( id + "<<<" );
//根据ID查询
User user = userservice.queryUserById( id );
return user;
}
// 没有检测重复
@GetMapping("userOne/{name}")
public User sayUserOne(@PathVariable String name) {
System.out.println( name + "<<<" );
//根据ID查询
User user = userservice.queryUserByName( name );
//user--json
return user;
}
@PutMapping("add")
public ResultInfo sayAdd(User user) {
// 把这个类进行的赋值 然后吧值补充道对象中
ResultInfo result =new ResultInfo();
System.out.println(user+"<<<");
try {
userservice.saveUser( user );
} catch (ParamException ex) {
ex.printStackTrace();
result.setCode( ex.getCode() );
result.setMsg( ex.getMsg() );
}catch (Exception ex){
ex.printStackTrace();
result.setCode( 300 );
result.setMsg( "添加异常" );
}
return result;
}
// 更新操作
@PostMapping("update")
public ResultInfo sayUpdate(@RequestBody User user){
ResultInfo result=new ResultInfo();
System.out.println(user + "<<<");
try {
userservice.changeUser( user );
} catch (ParamException ex) {
ex.printStackTrace();
result.setCode( ex.getCode() );
result.setMsg( ex.getMsg() );
}catch(Exception ex){
ex.printStackTrace();
result.setCode( 300 );
result.setMsg( "更新异常" );
}
return result;
}
@DeleteMapping("delete/{userId}")
public ResultInfo sayDel(@PathVariable Integer userId) {
ResultInfo result =new ResultInfo();
System.out.println( userId + "<<<" );
try {
userservice.removeUserById( userId );
} catch (ParamException ex) {
ex.printStackTrace();
result.setCode( ex.getCode() );
result.setMsg( ex.getMsg() );
}catch(Exception ex){
ex.printStackTrace();
result.setCode( 300 );
result.setMsg( "删除异常" );
}
return result;
}
@GetMapping("query")
public PageInfo sayDel(UserQuery userQuery) {
ResultInfo result=new ResultInfo();
System.out.println( userQuery + "<<<" );
PageInfo plist =userservice.queryUserByPage( userQuery );
return plist;
}
}
分页查询实现 需要定义对前端返回的对象进行的封装
public class UserQuery {
private Integer pageNum=1;
private Integer pageSize=1;
private String userName;
捕获全局异常
public class ParamException extends RuntimeException{
private Integer code=300;
private String msg="参数异常";
public class AssertUtil {
public static void isTrue(Boolean flag,String msg){
if(flag){
throw new ParamException(msg);
}
}
}
返回结果进行封装
public class ResultInfo {
private Integer code=200;
private String msg="操作成功";
private Object object;
最后在启动类上添加上mapper路径
@SpringBootApplication
//写的是包路径
@MapperScan("com.liuyang.mapper")
public class SpringbootcurdApplication {