Resultset的getObject()方法 - 如何正确使用它?

yra*_*lik 8 java jdbc resultset

我做了一个数据库查询并将Account对象存储在ResultSet.这是代码:

try {
    ResultSet rs = queryDatabase();
    int i=0;
    while (rs.next()) {
        Account account= rs.getObject(i, Account); //ERROR
        accounts.add(account);
        i++;
    } 
} catch (Exception e) {
}
Run Code Online (Sandbox Code Playgroud)

此代码返回3个对象并将它们存储在rs中.然后我希望将这些对象ResultSet放入其中,并将它们放入ArrayList代码中.但它在指定的行中给出了一个错误,说明了;预期.我该如何getObject正确使用方法?

Lui*_*oza 4

ResultSet.getObject(和其他getXxx方法)将从索引 1 的当前行检索数据。ResultSet您已将变量设置i为 0 值。

只要改变这个

int i=0;
Run Code Online (Sandbox Code Playgroud)

int i=1;
Run Code Online (Sandbox Code Playgroud)

另外,getObject需要一个参数,但您错误地发送了两个:

Account account= rs.getObject(i, Account);
Run Code Online (Sandbox Code Playgroud)

也许您正在尝试使用ResultSet#getObject(int, Class)(可从 Java 7 获得),但您必须考虑到您的Account类无法神奇地从数据库列转换为该对象的实例。

看起来最好先查看JDBC 试用,然后重试解决您的问题。

这是另一个值得回顾的好来源:Using Customized Type Mappings