mybatisplus-jpa-mybatis实现CURD的区别

mybatisplus-jpa-mybatis实现CURD的区别,第1张

mybatisplus-jpa-mybatis实现CURD的区别 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 {





欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5722470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存