interface代码封装:
①新建接口BaseService
public interface BaseService<T> {
public List<T> queryAll();
public T queryById(long id);
public List<T> queryByWhere(T t);
public Integer queryCountByWhere(T t);
public T queryByOne(T t);
public List<T> queryByPage(Integer page, Integer rows);
// 新添记录
public void save(T t);
public void saveSeletive(T t);
// 更新记录
public void update(T t);
public void updateSeletive(T t);
// 删除记录
public void deleteById(Long id);
// 批量删除记录
public void deleteByIds(List<Object> ids);
}
------------------------------------------------------------------------------------------------------------
service层代码封装:
①实现一个类BaseServiceImpl并且实现接口BaseService
public class BaseServiceImpl<T> implements BaseService<T> {
private Class<T> clazz;
public BaseServiceImpl() {
Type type = this.getClass().getGenericSuperclass();
ParameterizedType ptype = (ParameterizedType) type;
clazz = (Class<T>) ptype.getActualTypeArguments()[0];
}
@Autowired
private Mapper<T> mapper;
@Override
public List<T> queryAll() {
return mapper.select(null);
}
@Override
public T queryById(long id) {
return mapper.selectByPrimaryKey(id);
}
@Override
public List<T> queryByWhere(T t) {
return mapper.select(t);
}
@Override
public Integer queryCountByWhere(T t) {
return mapper.selectCount(t);
}
@Override
public T queryByOne(T t) {
return mapper.selectOne(t);
}
@Override
public List<T> queryByPage(Integer page, Integer rows) {
PageHelper.startPage(page, rows);
List<T> list = mapper.select(null);
return list;
}
@Override
public void save(T t) {
mapper.insert(t);
}
@Override
public void saveSeletive(T t) {
mapper.insertSelective(t);
}
@Override
public void update(T t) {
mapper.updateByPrimaryKey(t);
}
@Override
public void updateSeletive(T t) {
mapper.updateByPrimaryKeySelective(t);
}
@Override
public void deleteById(Long id) {
mapper.deleteByPrimaryKey(id);
}
@Override
public void deleteByIds(List<Object> ids) {
Example example = new Example(clazz);
Criteria criteria = example.createCriteria();
criteria.andIn("id", ids);
mapper.deleteByExample(example);
}