通用Service

来源:互联网 发布:java转嵌入式 编辑:程序博客网 时间:2024/05/18 04:58
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中的一些通用方法

0 0
原创粉丝点击