NC6 vo操作管理类 nc.hr.frame.persistence.BaseDAOManager

355 篇文章 103 订阅
package nc.hr.frame.persistence;

import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.jdbc.framework.DataSourceCenter;
import nc.jdbc.framework.SQLParameter;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.BeanProcessor;
import nc.jdbc.framework.util.DBConsts;
import nc.vo.hr.frame.persistence.BooleanProcessor;
import nc.vo.pub.SuperVO;

public class BaseDAOManager
{
    private BaseDAO baseDao;
    
    /**
     * 得到一个传入类型的查询结果集的对应的一个VO
     * @param <T>
     * @param sql
     * @param voClass
     * @return T
     * @throws DAOException
     */
    
    public <T> T executeQueryVO(String sql, Class<T> voClass) throws DAOException
    {
        return (T) getBaseDao().executeQuery(sql, new BeanProcessor(voClass));
    }
    
    /**
     * 得到一个传入类型的查询结果集的对应的一个VO
     * @param <T>
     * @param sql
     * @param parameter
     * @param voClass
     * @return T
     * @throws DAOException
     */
    
    public <T> T executeQueryVO(String sql, SQLParameter parameter, Class<T> voClass) throws DAOException
    {
        return (T) getBaseDao().executeQuery(sql, parameter, new BeanProcessor(voClass));
    }
    
    /**
     * 得到一个传入类型的查询结果集的数组
     * @param <T>
     * @param sql
     * @param voClass
     * @return T[]
     * @throws DAOException
     */
    
    public <T> T[] executeQueryVOs(String sql, Class<T> voClass) throws DAOException
    {
        List<T> list = (List<T>) getBaseDao().executeQuery(sql, new BeanListProcessor(voClass));
        if (list == null || list.size() == 0)
        {
            return (T[]) java.lang.reflect.Array.newInstance(voClass, 0);
        }
        
        return list.toArray((T[]) java.lang.reflect.Array.newInstance(voClass, list.size()));
        
    }
    
    /**
     * 得到一个传入类型的查询结果集的数组
     * @param <T>
     * @param sql
     * @param parameter
     * @param voClass
     * @return T[]
     * @throws DAOException
     */
    
    public <T> T[] executeQueryVOs(String sql, SQLParameter parameter, Class<T> voClass) throws DAOException
    {
        
        List<T> list = (List<T>) getBaseDao().executeQuery(sql, parameter, new BeanListProcessor(voClass));
        if (list == null || list.size() == 0)
        {
            return null;
        }
        return list.toArray((T[]) java.lang.reflect.Array.newInstance(voClass, list.size()));
    }
    
    /**
     * @return
     */
    public BaseDAO getBaseDao()
    {
        if (baseDao == null)
        {
            baseDao = new BaseDAO();
        }
        return baseDao;
    }
    
    /**
     * @param <T>
     * @param vos
     * @return
     * @throws DAOException
     */
    public <T extends SuperVO> T[] insertVOArrayReturnVOArray(T[] vos) throws DAOException
    {
        String[] pks = getBaseDao().insertVOArray(vos);
        for (int i = 0; i < vos.length; i++)
        {
            SuperVO vo = vos[i];
            vo.setPrimaryKey(pks[i]);
        }
        return vos;
    }
    
    /**
     * 判断是否是SQL数据库
     * @return
     * @throws SQLException
     */
    
    public boolean isSqlDbs() throws DAOException
    {
        return DBConsts.SQLSERVER == DataSourceCenter.getInstance().getDatabaseType();
    }
    
    /**
     * 通用的查询SQL是否存在查询结果
     * @param sql
     * @return boolean
     * @throws DAOException
     */
    public boolean isValueExist(String sql) throws DAOException
    {
        return (Boolean) getBaseDao().executeQuery(sql, new BooleanProcessor());
    }
    
    /**
     * 通用的查询SQL是否存在查询结果
     * @param sql
     * @param parameter
     * @return boolean
     * @throws DAOException
     */
    public boolean isValueExist(String sql, SQLParameter parameter) throws DAOException
    {
        return (Boolean) getBaseDao().executeQuery(sql, parameter, new BooleanProcessor());
    }
    
    /**
     * @param <T>
     * @param vo
     * @param isAnd
     * @return
     * @throws DAOException
     */
    
    public <T extends SuperVO> T[] retrieve(T vo, boolean isAnd) throws DAOException
    {
        Collection<T> c = getBaseDao().retrieve(vo, isAnd);
        if (c == null || c.size() == 0)
        {
            return null;
        }
        return c.toArray((T[]) java.lang.reflect.Array.newInstance(vo.getClass(), c.size()));
    }
    
    /**
     * @param <T>
     * @param voClass
     * @param condition
     * @return
     * @throws DAOException
     */
    
    public <T extends SuperVO> T[] retrieveByClause(Class<T> voClass, String condition) throws DAOException
    {
        
        Collection<T> c = getBaseDao().retrieveByClause(voClass, condition);
        if (c == null || c.size() == 0)
        {
            return null;
        }
        return c.toArray((T[]) java.lang.reflect.Array.newInstance(voClass, c.size()));
    }
    
    /**
     * @param <T>
     * @param voClass
     * @param pk
     * @return
     * @throws DAOException
     */
    
    public <T extends SuperVO> T retrieveByPK(Class<T> voClass, String pk) throws DAOException
    {
        return (T) getBaseDao().retrieveByPK(voClass, pk);
    }
    
    /**
     * @param <T>
     * @param vo
     * @param isAnd
     * @return
     * @throws DAOException
     */
    public <T extends SuperVO> T retrieveSingle(T vo) throws DAOException
    {
        T[] vos = retrieve(vo, true);
        vo = vos == null ? null : vos[0];
        return vo;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值