接口BaseService.java
package com.nongmall.manage.service;
import java.util.List;
import com.github.pagehelper.PageInfo;
public interface BaseService<T> {
/**
* 根据id查询记录
* @param id
* @return
*/
T selectById(Long id);
/**
* 查询所有的记录
* @return
*/
List<T> selectAll();
/**
* 根据条件查询单条记录
* @param record
* @return
*/
T selectOne(T record);
/**
* 根据条件查询多条记录
* @param record
* @return
*/
List<T> selectListByWhere(T record);
/**
* 根据条件分页查询多条记录
* @param record
* @param page
* @param rows
* @return
*/
PageInfo<T> selectPageListByWhere(T record, Integer page, Integer rows);
/**
* 添加所有字段
* @param record
* @return
*/
Integer add(T record);
/**
* 更新
* @param record
* @return
*/
Integer updateSelective(T record);
/**
* 根据id删除
* @param id
* @return
*/
Integer deleteById(Integer id);
/**
*
* @param clazz
* @param preporty
* @param values
* @return
*/
Integer deleteByPreportys(Class<T> clazz, String preporty, Object[] values);
/**
* 根据条件删除记录
* @param record
* @return
*/
Integer deleteByWhere(T record);
}
实现类BaseServiceImp.java
package com.nongmall.manage.service.imp;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.abel533.entity.Example;
import com.github.abel533.entity.Example.Criteria;
import com.github.abel533.mapper.Mapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.nongmall.manage.service.BaseService;
public class BaseServiceImp<T> implements BaseService<T> {
@Autowired
private Mapper<T> mapper;
@Override
public T selectById(Long id) {
return mapper.selectByPrimaryKey(id);
}
@Override
public List<T> selectAll() {
return mapper.select(null);
}
@Override
public T selectOne(T record) {
return mapper.selectOne(record);
}
@Override
public List<T> selectListByWhere(T record) {
return mapper.select(record);
}
@Override
public PageInfo<T> selectPageListByWhere(T record, Integer page, Integer rows) {
PageHelper.startPage(page, rows);
List<T> list = mapper.select(record);
return new PageInfo<T>(list);
}
@Override
public Integer add(T record) {
try {
Method setCreated = record.getClass().getMethod("setCreated", Date.class);
setCreated.invoke(record, new Date());
Method getCreated = record.getClass().getMethod("getCreated");
Date date = (Date) getCreated.invoke(record);
Method setUpdated = record.getClass().getMethod("setUpdated", Date.class);
setUpdated.invoke(record, date);
} catch (Exception e) {
e.printStackTrace();
}
return mapper.insert(record);
}
@Override
public Integer updateSelective(T record) {
try {
Method setUpdated = record.getClass().getMethod("setUpdated", Date.class);
setUpdated.invoke(record, new Date());
} catch (Exception e) {
e.printStackTrace();
}
return mapper.updateByPrimaryKeySelective(record);
}
@Override
public Integer deleteById(Integer id) {
return mapper.deleteByPrimaryKey(id);
}
@Override
public Integer deleteByPreportys(Class<T> clazz, String preporty, Object[] values) {
Example example = new Example(clazz);
Criteria criteria = example.createCriteria();
criteria.andIn(preporty, Arrays.asList(values));
return mapper.deleteByExample(example);
}
@Override
public Integer deleteByWhere(T record) {
return mapper.delete(record);
}
}
接口UserService.java
package com.nongmall.manage.service;
import com.nongmall.manage.pojo.User;
public interface UserService extends BaseService<User> {
}
实现类UserServiceImp.java
package com.nongmall.manage.service.imp;
import com.nongmall.manage.pojo.User;
@Service
public class UserServiceImp extends BaseServiceImp<User> implements UserService{
}