验证中...
Spring
Raw Copy
/**
* 基础业务接口
*
* @author fang.dengfu
* @date 2019/7/26 17:24
**/
public interface BaseService<T> {
/**
* 保存
* @param model 实体
* @return 修改行数
*/
int save(T model);
/**
* 批量保存
* @param models 实体列表
*/
void save(List<T> models);
/**
* 根据id删除
* @param id 数据id
*/
void deleteById(Long id);
/**
* 根据多个id批量删除
* @param ids id字符串,eg: 1,2,3
*/
void deleteByIds(String ids);
/**
* 更新
* @param model 实体
*/
void update(T model);
/**
* 根据id查找数据
* @param id 数据id
* @return 数据实体
*/
T findById(Long id);
/**
* 根据id列表获取数据
* @param ids id字符串
* @return 数据集合
*/
List<T> findByIds(String ids);
/**
* 根据条件查询
* @param condition 查询条件
* @return 数据集
*/
List<T> findByCondition(Condition condition);
/**
* 根据部分字段多个匹配
* @param another 实体example
* @return 数据集
*/
List<T> find(T another);
/**
* 查询单个
* @param another 实体example
* @return 数据集
*/
T findOne(T another);
/**
* 获取所有数据
* @return 数据集
*/
List<T> findAll();
/**
* 分页查询
*
* @param pageQo 查询条件
* @return 分页数据
*/
PageVo<T> list(PageQo pageQo);
}
/**
* 公共接口实现
*
* @author fang.dengfu
* @date 2019/7/26 17:36
**/
public abstract class AbstractBaseService<T> implements BaseService<T> {
@Autowired
protected Mapper<T> mapper;
/**
* 子类实际的class对象
*/
private Class<T> modelClass;
public AbstractBaseService() {
ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
modelClass = (Class<T>) type.getActualTypeArguments()[0];
}
@Override
public int save(T model) {
return mapper.insertSelective(model);
}
@Override
public void save(List<T> models) {
mapper.insertList(models);
}
@Override
public void deleteById(Long id) {
mapper.deleteByPrimaryKey(id);
}
@Override
public void deleteByIds(String ids) {
mapper.deleteByIds(ids);
}
@Override
public void update(T model) {
mapper.updateByPrimaryKeySelective(model);
}
@Override
public T findById(Long id) {
return mapper.selectByPrimaryKey(id);
}
@Override
public List<T> findByIds(String ids) {
return mapper.selectByIds(ids);
}
@Override
public List<T> findByCondition(Condition condition) {
return mapper.selectByCondition(condition);
}
@Override
public List<T> find(T another) {
return mapper.select(another);
}
@Override
public T findOne(T another) {
return mapper.selectOne(another);
}
@Override
public List<T> findAll() {
return mapper.selectAll();
}
@Override
public PageVo<T> list(PageQo pageQo) {
Page<T> pages = PageHelper.startPage(pageQo.getPageNum(), pageQo.getPageSize());
T t;
try {
t = modelClass.newInstance();
BeanUtils.copyProperties(pageQo.getCondition(), t);
mapper.select(t);
return PageVo.build(pages);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
}
/**
* tk接口整合
*
* @author fang.dengfu
* @date 2019/7/26 17:37
**/
public interface Mapper<T>
extends
BaseMapper<T>,
ConditionMapper<T>,
IdsMapper<T>,
InsertListMapper<T>,
ExampleMapper<T>,
SelectRowBoundsMapper<T>,
SelectByConditionMapper<T>,
SelectByExampleRowBoundsMapper<T>,
SelectCountByConditionMapper<T>,
SelectCountMapper<T>,
SelectCountByExampleMapper<T> {
}

Comment list( 0 )

You need to Sign in for post a comment

Help Search