Thread: JDBC Array double precision [] error
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! ;)
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:
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.jarI 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! ;)
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.jarI 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! ;)