nc 服务类接口查询数据库方法

该方法是一个在nc服务中查询数据库并获取主键值的实现。通过IQueryScheme参数获取bean_id,利用反射创建SuperVO实例,根据主键字段名构造SQL语句。进一步地,通过QuerySchemeProcessor处理查询方案,添加功能权限和当前组信息,并执行SQL获取唯一数据,最后将结果转换为字符串数组返回。
@Override
    public AggSupervisionVO[] queryBillByPK(String[] pks)
            throws BusinessException {
        AggSupervisionVO[] bills = null;

        BillQuery<AggSupervisionVO> query;
        query = new BillQuery<AggSupervisionVO>(AggSupervisionVO.class);
        bills = query.query(pks);
        
        return PaginationUtils.filterNotExistBills(bills, pks);

    }


@Override
    public String[] queryPKs(IQueryScheme queryScheme) throws BusinessException {
        String beanId = (String) queryScheme.get("bean_id");

        Class headVoClass = (Class) queryScheme.get("headVoClass");
        SuperVO vo = (SuperVO) ReflectHelper.newInstance(headVoClass);

        String fieldName = vo.getPKFieldName();
        // String beanId=(String) queryScheme.get(QueryConstants.BEAN_ID);

        StringBuffer sql = new StringBuffer();
        QuerySchemeProcessor processor = new QuerySchemeProcessor(queryScheme);
        processor.appendFuncPermissionOrgSql();
        processor.appendCurrentGroup();
        String mainAlias = processor.getMainTableAlias();
        sql.append(" select distinct ");
        sql.append(mainAlias);
        sql.append(".");
        sql.append(fieldName);
        sql.append(processor.getFinalFromWhere());
        DataAccessUtils dao = new DataAccessUtils();
        IRowSet rowset = dao.query(sql.toString());
        String[] keys = rowset.toOneDimensionStringArray();
        return keys;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值