BaseDao.java 2.65 KB
package com.diligrp.website.util.dao;

import java.util.List;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * <B>Description</B> 所有DAO的父类,提供常用工具类方法<br />
 * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved. <br />
 * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
 * <B>Company</B> 地利集团
 * @param <T> 返回数据对象类
 * @deprecated use com.diligrp.website.util.dao.impl.BaseDaoImpl
 * @createTime May 9, 2014 5:03:01 PM
 * @author wujianjun
 */
public abstract class BaseDao<T> {

    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    public SqlSessionTemplate getSqlSessionTemplate() {
        return sqlSessionTemplate;
    }

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
        this.sqlSessionTemplate = sqlSessionTemplate;
    }

    /**
     * 添加一条数据
     * @param value 数据Bean
     * @return 是否成功
     * @createTime May 9, 2014 2:56:18 PM
     * @author wujianjun
     */
    public boolean save(T value) {
        return getSqlSessionTemplate().insert(
                this.getClass().getCanonicalName() + ".save", value) > 0;
    }

    /**
     * 修改一条数据
     * @param value 数据
     * @return 是否成功
     * @createTime May 9, 2014 2:56:43 PM
     * @author wujianjun
     */
    public boolean update(T value) {
        return getSqlSessionTemplate().update(
                this.getClass().getCanonicalName() + ".update", value) > 0;
    }

    /**
     * 根据主键删除数据
     * @param id 主键
     * @return 是否成功
     * @createTime May 9, 2014 2:57:09 PM
     * @author wujianjun
     */
    public boolean deleteById(Long id) {
        return getSqlSessionTemplate().delete(
                this.getClass().getCanonicalName() + ".deleteById", id) > 0;
    }

    /**
     * 通过主键获取数据,采用selectOne实现
     * @param id 惟一ID
     * @return 数据对象
     * @createTime May 9, 2014 2:50:00 PM
     * @author wujianjun
     */
    public T getById(Long id) {
        return (T) getSqlSessionTemplate().selectOne(
                this.getClass().getCanonicalName() + ".getById", id);
    }

    /**
     * 通过条件进行数据查询
     * @param conditions 条件
     * @return 数据集
     * @createTime May 9, 2014 2:57:45 PM
     * @author wujianjun
     */
    public List<T> listByCondition(BaseQuery conditions) {
        return getSqlSessionTemplate().selectList(
                this.getClass().getCanonicalName() + ".listByCondition",
                conditions);
    }
}