Thread: JDBC Array double precision [] error

JDBC Array double precision [] error

From
Juan Pablo Cook
Date:
Hi everyone! I need your help with this problem.
 
I'm using PostgreSQL 9.2 Server & the latest jdbc driver: postgresql-9.2-1002.jdbc4.jar

I have a table with this column array: 
 -- histograma double precision[]

And I want to retrieve this and cast into java to double[] but I can't.

This is the extract of the code:

Statement stat1 = con.createStatement();
ResultSet rs1 = stat1.executeQuery("SELECT * FROM \"Vector\");

while (rs1.next()) {

double[] array = (double[]) rs1.getArray("histograma").getArray();

}

And the error: 
"
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Double; cannot be cast to [D
"
Also I tried to do a for loop but didn't work.

Can you help me? 

Thanks a lot! ;)

Re: JDBC Array double precision [] error

From
Nicholas White
Date:
getArray returns a Double[] - not a primitive double[]. You can't cast between the two; use something like http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/primitives/Doubles.html#toArray(java.util.Collection) ...

On Sunday, 31 March 2013, Juan Pablo Cook wrote:
Hi everyone! I need your help with this problem.
 
I'm using PostgreSQL 9.2 Server & the latest jdbc driver: postgresql-9.2-1002.jdbc4.jar

I have a table with this column array: 
 -- histograma double precision[]

And I want to retrieve this and cast into java to double[] but I can't.

This is the extract of the code:

Statement stat1 = con.createStatement();
ResultSet rs1 = stat1.executeQuery("SELECT * FROM \"Vector\");

while (rs1.next()) {

double[] array = (double[]) rs1.getArray("histograma").getArray();

}

And the error: 
"
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Double; cannot be cast to [D
"
Also I tried to do a for loop but didn't work.

Can you help me? 

Thanks a lot! ;)

Re: JDBC Array double precision [] error

From
Juan Pablo Cook
Date:
Thanks everyone! that's help a lot ;) Double[] instead of the primitive double[].

Thanks!

JP


On Mon, Apr 1, 2013 at 3:28 AM, Nicholas White <n.j.white@gmail.com> wrote:
getArray returns a Double[] - not a primitive double[]. You can't cast between the two; use something like http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/primitives/Doubles.html#toArray(java.util.Collection) ...


On Sunday, 31 March 2013, Juan Pablo Cook wrote:
Hi everyone! I need your help with this problem.
 
I'm using PostgreSQL 9.2 Server & the latest jdbc driver: postgresql-9.2-1002.jdbc4.jar

I have a table with this column array: 
 -- histograma double precision[]

And I want to retrieve this and cast into java to double[] but I can't.

This is the extract of the code:

Statement stat1 = con.createStatement();
ResultSet rs1 = stat1.executeQuery("SELECT * FROM \"Vector\");

while (rs1.next()) {

double[] array = (double[]) rs1.getArray("histograma").getArray();

}

And the error: 
"
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Double; cannot be cast to [D
"
Also I tried to do a for loop but didn't work.

Can you help me? 

Thanks a lot! ;)