aspose file tools*
The moose likes JDBC and the fly likes How to get BIGINT return type in Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "How to get BIGINT return type in Java" Watch "How to get BIGINT return type in Java" New topic
Author

How to get BIGINT return type in Java

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38881
    
  23
I was trying a query

. . . "SELECT COUNT(*) FROM member"

and kept getting SQLExceptions.
I had first tried that as a myResultSet.getInt(1) call, but it was no better when I tried it as getLong(1) or getObject(1).
I got the details from ResultSetMetaData and it said column 1 was type -5 (typeName = BIGINT) and its name was COUNT(*), so that wasn't the problem.

I am using InnoDB on MySQL5.0.51.

I presume count(*) returns a bigint (That is what it says in the MySQL manual �11.11.1 page 719 and it doesn't say anything about unsigned) and I thought a bigint corresponds to a long.
I ended up using a workaround, because I already knew the count(*) for that table, but it's hardly satisfactory hard-coding such a number.
Stack Trace:
SQL Exception: stack trace follows: state: S1000, error code: 00000
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.UpdatableResultSet.checkRowPos(UpdatableResultSet.java:226)
at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2835)
at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2830)
at database.CreditUnionTestInserter.makeLotsOfPayments(CreditUnionTestInserter.java:148)
at database.CreditUnionTestInserter.main(CreditUnionTestInserter.java:224)
Changing to TYPE_SCROLL_INSENSITIVE didn't make any difference.

Anybody know why I was getting that exception?
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

It's because you didn't call rs.next() to move to the first row of the ResultSet.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38881
    
  23
Is that all? Thank you. Too late to try it tonight, but will try again tomorrow.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38881
    
  23
Thank you again. You were right; it worked all right after a next() call.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: How to get BIGINT return type in Java