package com.lyt.usermanage.pojo;
import java.util.Date;
public abstract class BasePojo {
private Date created;
private Date updated;
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
}
package com.lyt.usermanage.service;
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.mapper.Mapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lyt.usermanage.pojo.BasePojo;
/**
* 抽取出一些基本的操作
* @author Administrator
*
*/
public abstract class BaseService<T extends BasePojo> {
@Autowired
private Mapper<T> mapper;
/**
* 定义一个抽象方法,获取mapper,由子类去完成
* @return
*/
// public abstract Mapper<T> mapper;
public T queryById(Long id){
return this.mapper.selectByPrimaryKey(id);
}
/**
* 查询所有对象
* @return
*/
public List<T> queryAll(){
return this.mapper.select(null);
}
/**
* 根据条件查询唯一的一条记录
* @return
*/
public T queryOne(T record){
return this.mapper.selectOne(record);
}
/**
* 根据条件查询list数据
* @param record
* @return
*/
public List<T> queryListByWhere(T record){
return this.mapper.select(record);
}
/**
* 根据条件查询分页数据
* @param record
* @return
*/
public PageInfo<T> queryPageListByWhere(T record , Integer pageNum , Integer pageSize){
PageHelper.startPage(pageNum, pageSize);//开启分页
List<T> list = this.mapper.select(record);//正常查询数据
PageInfo<T> pageInfo = new PageInfo<T>(list);//构建page信息
return pageInfo;
}
public Integer save(T record){
//把创建时间,和修改时间初始化进去。
record.setCreated(new Date());//
record.setUpdated(record.getCreated());//
return this.mapper.insert(record);
}
/**
* 修改对象,如果属性是null,也进行修改
* @param record
* @return
*/
public Integer update(T record){
record.setUpdated(new Date());
return this.mapper.updateByPrimaryKey(record);
}
/**
* 修改对象,如果属性是null,则不进行修改
* @param record
* @return
*/
public Integer updateSelective(T record){
record.setCreated(null);//强制把创建时间设置成null,不让修改
record.setUpdated(new Date());
return this.mapper.updateByPrimaryKeySelective(record);
}
public Integer deleteById(Long id){
return this.mapper.deleteByPrimaryKey(id);
}
/**
* 根据ids 删除多个对象
* @param clazz ,实体对应的class
* @param property 实体类中主键属性名
* @param ids 要删除的主键的值
* @return
*/
public Integer deleteByIds(Class<T> clazz , String property,List<Object> ids){
Example example = new Example(clazz);
//第一个参数,实体类的属性
example.createCriteria().andIn(property, ids);
return this.mapper.deleteByExample(example);
}
/**
* 根据条件删除数据
* @param record
* @return
*/
public Integer deleteByWhere(T record){
return this.mapper.delete(record);
}
}
抽取service中的一些通用方法