Java持久层和控制器的封装,黑客编程技术详解

}

//根据id查询

public T findById(ID id) {

Optional optional = baseDAO.findById(id);

if(optional.isPresent()) {

return optional.get();

}

return null;

}

//保存方法

@Transactional

public void save(T entity) {

baseDAO.save(entity);

}

//根据实体类删除

public void delete(T entity) {

baseDAO.delete(entity);

}

//根据id查询

@Transactional

public void deleteById(ID id) {

baseDAO.deleteById(id);

}

//排序查询所有

public List findAll(Sort sort){

return baseDAO.findAll(sort);

}

//动态条件查询

public List findAll(Specification spec){

return baseDAO.findAll(spec);

}

//分页查询

public Page findAll(Pageable pageable){

return baseDAO.findAll(pageable);

}

//动态条件分页查询

public Page findAll(Specification spec, Pageable pageable){

return baseDAO.findAll(spec,pageable);

}

//动态条件排序查询

public List findAll(Specification spec, Sort sort){

return baseDAO.findAll(spec,sort);

}

}

最后就是控制器的封装了,控制器需要先通过反射机制的工具类GenericsUtils,找到对应的实体类。之后封装一下常用的方法。不同于上面两个类的是,他有三个泛型接口,除了实体类和ID的类型外,他还有一个BaseForm类,BaseForm为公共的Form类,该类中就一个id和一个查询条件。因为这里写数据保存方法的数据接收是很使用的Form接收的,使用Form里边的ID是判断是修改还是新增方法(修改和新增用的一个方法,用id是否为null区分),BaseForm类代码如下。

public class BaseForm {

private ID id;

private String search;

public ID getId() {

return id;

}

public void setId(ID id) {

this.id = id;

}

public String getSearch() {

return search;

}

public void setSearch(String search) {

this.search = search;

}

}

其中search字段是BootstrapTable查询传递参数的属性名,所以写在了公共的Form类中,不需要的可以删除不要。

公共的CommonController控制器代码如下(主要包了数据显示,新增修改页面的跳转,和数据查询和删除的方法)。

import org.springframework.beans.BeanUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.Page;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Sort;

import org.springframework.data.jpa.domain.Specification;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

/**

  • 公共Controller

  • @param

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值