这里写一下spring中使用Mapper的方案,这也是项目中的最优方案;
由于spring4增加了对泛型注入的支持,这个特性对于Mybatis的通用Mapper来说,非常的有用,可以直接在service中写Mapper<T>
,通过BaseService<T> 来实现通用的Service;
Spring 抽象出Service方法– BaseService
public abstract class BaseService<T> {
// public abstract Mapper<T> getMapper();
//注入Mapper<T>
@Autowired
private Mapper<T> mapper;
/**
* 根据id查询数据
*
* @param id
* @return
*/
public T queryById(Long id) {
return mapper.selectByPrimaryKey(id);
}
/**
* 查询所有数据
*
* @return
*/
public List<T> queryAll() {
return mapper.select(null);
}
/**
* 根据条件查询一条数据,如果有多条数据会抛出异常
*
* @param record
* @return
*/
public T queryOne(T record) {