1.接口类
@Service
public interface BaseService<T> {
Long generatePrimaryKey();
T selectOne(T record);
T selectByPrimaryKey(Object key);
int insert(T record);
int insertSelective(T record);
int insertListSelective(List<T> recordList);
int deleteByPrimaryKey(Object key);
int deleteByExample(Object example);
int delete(T record);
int deleteByPrimaryKeys(String ids);
int deleteByPrimaryKeys(String ids, String dataType);
int updateByPrimaryKey(T record);
int updateByPrimaryKeySelective(T record);
int updateByExample(T record,Object example);
int updateByExampleSelective(T record,Object example);
List<T> selectByExample(Object example);
List<T> selectByExampleAndRowBounds(Object example,RowBounds rowBounds);
int selectCountByExample(Object example);
List<T> select(T record);
List<T> selectByRowBounds(T record,RowBounds rowBounds);
int selectCount(T record);
DataGridResult<T> selectPageByExample(Object example, int page, int rows);
DataGridResult<T> selectPageByEntity(T record, int page, int rows);
DataGridResult<T> selectPageByExample(Object example, String orderBy, int page, int rows);
DataGridResult<T> selectPageByEntity(T record, String orderBy, int page, int rows);
DataGridResult<Map<String,Object>> selectPageUseSqlToMap(Map<String,Object> filter, int page, int rows);
}
2.实现类
/**
*
* @ClassName: BaseServiceImpl
* @Description: base基础实现类
* @author zhanxz
* @date 2017年7月3日
*
* @param <T>
*/
public abstract class BaseServiceImpl<T> implements BaseService<T> {
@Autowired
protected MyBatisMapper<T> mapper;
public Long generatePrimaryKey(){
return mapper.generatePrimaryKey();
};
public Mapper<T> getMapper() {
return mapper;
}
@Override
public T selectByPrimaryKey(Object key) {
return mapper.selectByPrimaryKey(key);
}
@Override
public T selectOne(T record) {
return mapper.selectOne(record);
}
@Override
public int insert(T record) {
return mapper.insert(record);
}
@Override
public int insertSelective(T record) {
return mapper.insertSelective(record);
}
@Override
public int deleteByPrimaryKey(Object key) {
return mapper.deleteByPrimaryKey(key);
}
@Override
public int deleteByExample(Object example) {
return mapper.deleteByExample(example);
}
@Override
public int delete(T record) {
return mapper.delete(record);
}
@Override
public int deleteByPrimaryKeys(String ids) {
try {
if (StringUtils.isBlank(ids)) {
return 0;
}
String[] idArray = ids.split("-");
int count = 0;
for (String idStr : idArray) {
if (StringUtils.isBlank(idStr)) {
continue;
}
int result = deleteByPrimaryKey(idStr);
count += Integer.parseInt(String.valueOf(result));
}
return count;
}catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public int deleteByPrimaryKeys(String ids, String dataType) {
try {
if (StringUtils.isBlank(ids)) {
return 0;
}
String[] idArray = ids.split("-");
int count = 0;
for (String idStr : idArray) {
if (StringUtils.isBlank(idStr)) {
continue;
}
Object idObj = null;
if(SystemConstant.DATA_TYPE_LONG.equals(dataType)) {
idObj = Long.parseLong(idStr);
} else if(SystemConstant.DATA_TYPE_INTEGER.equals(dataType)) {
idObj = Integer.parseInt(idStr);
} else if(SystemConstant.DATA_TYPE_STRING.equals(dataType)) {
idObj = idStr;
}
int result = deleteByPrimaryKey(idObj);
count += Integer.parseInt(String.valueOf(result));
}
return count;
}catch (Exception e) {
e.printStackTrace();
}
return 0;
}
@Override
public int updateByPrimaryKey(T record) {
return mapper.updateByPrimaryKey(record);
}
@Override
public int updateByPrimaryKeySelective(T record) {
return mapper.updateByPrimaryKeySelective(record);
}
@Override
public int updateByExample(T record,Object example) {
return mapper.updateByExample(record, example);
}
@Override
public int updateByExampleSelective(T record,Object example) {
return mapper.updateByExampleSelective(record, example);
}
@Override
public List<T> selectByExample(Object example) {
return mapper.selectByExample(example);
}
@Override
public List<T> selectByExampleAndRowBounds(Object example,RowBounds rowBounds){
return mapper.selectByExampleAndRowBounds(example, rowBounds);
}
@Override
public int selectCountByExample(Object example){
return mapper.selectCountByExample(example);
}
@Override
public List<T> select(T record){
return mapper.select(record);
}
@Override
public List<T> selectByRowBounds(T record,RowBounds rowBounds){
return mapper.selectByRowBounds(record, rowBounds);
}
@Override
public int selectCount(T record){
return mapper.selectCount(record);
}
@Override
public DataGridResult<T> selectPageByExample(Object example, int page, int rows) {
//分页查询
PageHelper.startPage(page, rows);
List<T> data = selectByExample(example);
DataGridResult<T> dataGridResult = new DataGridResult<T>();
PageInfo<T> pageInfo = new PageInfo<T>(data);
dataGridResult.setRows(pageInfo.getList());
dataGridResult.setTotal(pageInfo.getTotal());
dataGridResult.setPageNum(pageInfo.getPageNum());
dataGridResult.setPageSize(pageInfo.getPageSize());
return dataGridResult;
}
@Override
public DataGridResult<T> selectPageByEntity(T record, int page, int rows) {
//分页查询
PageHelper.startPage(page, rows);
List<T> data = select(record);
DataGridResult<T> dataGridResult = new DataGridResult<T>();
PageInfo<T> pageInfo = new PageInfo<T>(data);
dataGridResult.setRows(pageInfo.getList());
dataGridResult.setTotal(pageInfo.getTotal());
dataGridResult.setPageNum(pageInfo.getPageNum());
dataGridResult.setPageSize(pageInfo.getPageSize());
return dataGridResult;
}
@Override
public DataGridResult<T> selectPageByExample(Object example,
String orderBy, int page, int rows) {
//分页查询
PageHelper.startPage(page, rows, orderBy);
List<T> data = selectByExample(example);
DataGridResult<T> dataGridResult = new DataGridResult<T>();
PageInfo<T> pageInfo = new PageInfo<T>(data);
dataGridResult.setRows(pageInfo.getList());
dataGridResult.setTotal(pageInfo.getTotal());
dataGridResult.setPageNum(pageInfo.getPageNum());
dataGridResult.setPageSize(pageInfo.getPageSize());
return dataGridResult;
}
@Override
public DataGridResult<T> selectPageByEntity(T record, String orderBy,
int page, int rows) {
//分页查询
PageHelper.startPage(page, rows, orderBy);
List<T> data = select(record);
DataGridResult<T> dataGridResult = new DataGridResult<T>();
PageInfo<T> pageInfo = new PageInfo<T>(data);
dataGridResult.setRows(pageInfo.getList());
dataGridResult.setTotal(pageInfo.getTotal());
dataGridResult.setPageNum(pageInfo.getPageNum());
dataGridResult.setPageSize(pageInfo.getPageSize());
return dataGridResult;
}
@Override
public int insertListSelective(List<T> recordList) {
return mapper.insertListSelective(recordList);
}
@Override
public DataGridResult<Map<String, Object>> selectPageUseSqlToMap(Map<String, Object> filter, int page, int rows) {
//分页查询
PageHelper.startPage(page, rows);
List<Map<String, Object>> data = mapper.selectPageUseSqlToMap(filter);
DataGridResult<Map<String, Object>> dataGridResult = new DataGridResult<Map<String, Object>>();
PageInfo<Map<String, Object>> pageInfo = new PageInfo<Map<String, Object>>(data);
dataGridResult.setRows(pageInfo.getList());
dataGridResult.setTotal(pageInfo.getTotal());
dataGridResult.setPageNum(pageInfo.getPageNum());
dataGridResult.setPageSize(pageInfo.getPageSize());
return dataGridResult;
}
}