File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/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: 40052
    
  28
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: 18987
    
    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: 40052
    
  28
Is that all? Thank you. Too late to try it tonight, but will try again tomorrow.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 40052
    
  28
Thank you again. You were right; it worked all right after a next() call.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to get BIGINT return type in Java