java ojdbc 6 getInt() по номеру столбца, возвращающему неправильное значение

Я получил довольно интересную ошибку от ojdbc getInt() по номеру столбца.

ps = conn.prepareStatement("select count(*) from tableA");
rs = ps.executeQuery();
int x;
if (rs.next())
    x = rs.getInt(1);

ps = conn.prepareStatement("select count(*) as someVariable from tableA");
rs = ps.executeQuery();
int y;
if (rs.next())
    y = rs.getInt(1);

Значения х и у разные. у - правильное число, которое я ожидаю.

Я использую Java 7 с ojdbc6.jar (11.2.0.3.0)

Благодарю.

1 ответ

ps = conn.prepareStatement("select count(*) as someVariable from tableA");
ps = conn.prepareStatement("select count(*) as result from tableA");
rs = ps.executeQuery();
int x;
if (rs.next())
    x = rs.getInt("result");

ps = conn.prepareStatement("select count(*) as someVariable from tableA");
rs = ps.executeQuery();
int y;
if (rs.next())
    y = rs.getInt("someVariable");

Разве вы не забыли про rs.close(), conn.close(), Statement.close()? Лучше попробовать ресурсы, чем просто попробовать.

try(Connection con = DriverManager.getConnection("DBpath","usr","pswd")) {
    //doSomething
}

В этом случае вам не нужно закрывать их, они закрываются автоматически. Примечание: вы можете сделать это только с закрывающимися объектами.

Другие вопросы по тегам