奇怪的BIRT数据集问题

在BIRT环境中创建的数据集在IDE预览正常,但在J2EE应用中运行时出现NullPointerException错误。错误源自BIRT的ResultSetMetaData获取方法。通过调整SQL查询语句的where子句位置解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到了一个奇怪的问题,我在BIRT下建立了数据集,查询语句如下:

select  

B.A_C_USER_ID,
B.A_C_UNIT_CODE,
B.A_C_PRODUCT_ID,
B.A_C_PRODUCT_NAME,
B.A_C_FUNC_ID,
EXIMUSER.SEC_USER_AUTH_LEVEL.I_AUTH_LEVEL
from

(select  
EXIMUSER.SEC_USER_INFO.C_USER_ID   A_C_USER_ID,
EXIMUSER.SEC_USER_INFO.C_UNIT_CODE   A_C_UNIT_CODE,
EXIMUSER.SEC_OP_FUNC.C_PRODUCT_ID   A_C_PRODUCT_ID,
EXIMUSER.SEC_OP_FUNC.C_PRODUCT_NAME   A_C_PRODUCT_NAME,
EXIMUSER.SEC_OP_FUNC.C_FUNC_ID   A_C_FUNC_ID
from   EXIMUSER.SEC_USER_INFO  
left   join  
EXIMUSER.SEC_OP_FUNC   on   EXIMUSER.SEC_OP_FUNC.C_USER_ID=EXIMUSER.SEC_USER_INFO.C_USER_ID
where   EXIMUSER.SEC_USER_INFO.C_UNIT_CODE=?)   B  

left   join

EXIMUSER.SEC_USER_AUTH_LEVEL   on   EXIMUSER.SEC_USER_AUTH_LEVEL.C_USER_ID=B.A_C_USER_ID  
and   EXIMUSER.SEC_USER_AUTH_LEVEL.C_PRODUCT_ID=B.A_C_PRODUCT_ID


在BIRT   的IDE里面预览没有任何问题,但我将模板放到J2EE应用中,结果却报错。报错信息如下:
[08-2-29   9:43:00:265   CST]   3cf03cf0   SystemErr           R   java.lang.NullPointerException
[08-2-29   9:43:00:296   CST]   3cf03cf0   SystemErr           R   at   java.lang.Throwable. <init> (Throwable.java)
[08-2-29   9:43:00:296   CST]   3cf03cf0   SystemErr           R   at   java.lang.Throwable. <init> (Throwable.java)
[08-2-29   9:43:00:296  
### CUB鸟类数据集下载和使用方法 #### 下载CUB鸟类数据集 为了获取Caltech-UCSD Birds 200 (CUB-200) 数据集,访问官方网站或指定的数据托管平台。该数据集分为两个版本:2010版和2011版。对于更丰富的资源,建议选择2011版,其包含了更多的图像数量以及详尽的标注信息[^3]。 具体操作如下: - 浏览至官方页面并查找下载链接。 - 阅读许可协议后点击同意按钮继续。 - 输入电子邮件地址接收下载链接。 - 使用收到的链接下载压缩文件到本地计算机。 #### 解压与目录结构理解 下载完成后解压ZIP档案,会得到一系列文件夹及文档。主要组成部分包括但不限于图片文件(`images`)、边界框坐标(`bounding_boxes.txt`)、类别标签(`image_class_labels.txt`)以及其他辅助资料如部件位置(part locations)和二元特征(binary attributes)[^2]。 ```bash unzip CUB_200_2011.tgz -d ./data/ cd data/CUB_200_2011/ ls ``` 上述命令展示了如何解压归档并将工作路径切换至新创建的数据集根目录下查看内部结构。 #### 加载与预处理 利用Python及其科学计算库可以方便地加载这些数据。下面给出了一段简单的脚本作为示范,用于展示怎样读取基本的信息表单,并将其转换成易于后续分析的形式。 ```python import pandas as pd from pathlib import Path # 设置基础路径 base_path = Path('./data/CUB_200_2011') # 导入必要的表格 bbox_df = pd.read_csv(base_path / 'bounding_boxes.txt', sep=' ', header=None, names=['img_id', 'x', 'y', 'w', 'h']) class_label_df = pd.read_csv(base_path / 'image_class_labels.txt', sep=' ', header=None, names=['img_id', 'class_id']) print(f"BBox DataFrame:\n{bbox_df.head()}") print(f"\nClass Label DataFrame:\n{class_label_df.head()}") ``` 这段代码片段首先导入所需的Pandas模块和其他工具包,接着定义了数据存储的基础路径;之后分别从`bounding_boxes.txt`和`image_class_labels.txt`这两个文本文件中提取边界框参数和对应的类别编号,最后打印前几条记录以便验证是否成功解析。 #### 应用场景实例 考虑到此数据集常被应用于细粒度物体识别领域内的研究项目当中,在实际应用过程中可能涉及到模型训练环节。此时可以根据需求选取适当比例的数据划分成训练集/验证集/测试集三大部分,进而开展监督学习实验活动。此外还可以探索基于迁移学习的方法论来提升性能表现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值