2012-05-24 3 views
3

J'ai une table comme celui-ciRécupération de tableaux en utilisant JDBC postgresql

list  | id | 
-----------+-------- 
{930,23} | 1 | 
{2012,1} | 2 | 
{5943} | 3 | 
{6148} | 4 | 
{1003} | 5 | 

Maintenant, je voudrais utiliser JDBC pour récupérer la première colonne. J'ai appris que nous pouvons utiliser java.sql.Array pour le faire. (http://docs.oracle.com/javase/tutorial/jdbc/basics/array.html#retrieving_array), mais quand je déclare l'objet Array comme ceci:

import java.sql.Array; 

while(rs.next()) 
    Array arr; 

Il émettait une erreur de compilation:

[javac] /home/xxx.java:291: error: not a statement 
[javac]    Array arr; 
[javac]   ^
[javac] /home/xxx.java:291: error: ';' expected 
[javac]    Array arr; 
[javac]    ^
[javac] /home/xxx.java:291: error: not a statement 
[javac]    Array arr; 
[javac]     ^

Il semble que Java ne reconnaît pas le type de données java.sql.Array. Quelqu'un sait pourquoi? Merci beaucoup!

Répondre

2

Vous devez utiliser des accolades avec vos instructions while:

while (rs.next()) { 
    Array arr; // Add more code here. 
} 
+0

Il fonctionne! Je vous remercie. Mais pourquoi devrions-nous utiliser des accolades quand il n'y a qu'une seule déclaration? – Yang

+0

@Yang: Parce que la spécification Java ne vous oblige pas tous à créer une variable locale sauf si vous avez un bloc. Même si c'était autorisé, cela n'aurait pas beaucoup de sens. Quelle serait sa portée? –

Questions connexes