我有一个编码任务,我被卡住了......
我有一个帐户表,我需要在其中选择未处理的帐户;这就是我做得很轻松的事情
现在,作业要求我返回Accounts数组中的每个帐户;我从查询中得到了
那么,我如何将一个帐户数组(我如何在结果集中填写每个未被删除的帐户)返回到Accounts数组中,以便从已经定义的函数返回,我不允许这样做。
结果集是否有任何方式:返回其包含的单行作为帐户实例?
我们需要使用Java 5而不允许实现第三方库
P.S
我已经尝试过了:
Account account = (Account) rs.getObject("ID");` this has a classcast exception
和
Account account = (Account) rs.getObject("ID",Account.Class);
这还有其他一些例外
我还读过: 自定义类型映射 但我不确定即使在完成了所有内容之后我也会得到所需的结果
此解决方案还涉及首先在databaselevel上创建customtype(在本例中为account),我也不允许触摸
如其他一些答案所述
请分享你的exp。
答案 0 :(得分:0)
您获得的类强制转换异常是预期的,因为rs.getObject(“ID”)不提供属于Account类的对象。您可以创建Account对象的数组(或List),并在迭代结果集时填充它。 (假设您在结果集的单行中拥有帐户的所有信息)。我们还假设Account类如下:
class Account {
int id;
String accountType;
String accountHolderName;
long accountBalance;
...
...
...
}
//假设您要查询的表列包含每行的这些字段:
AccountId | AccountType | AccountHolderName | AccountBalance | ...
101 | Checking | John | 100 | ...
//填充帐户对象
Account [] accArray = new accArray [sizeOfResultSet];
int i=0;
while (rs.next()){
Account current = new Account();
current.id = rs.getInt("AccountId");
current.accountType = rs.getString("AccountType");
current.accountHolderName = rs.getString("AccountHolderName");
...
...
...
}