PDA

View Full Version : [Java-SQL] Cast da Blob a Set


nayma
10-10-2007, 15:55
Ciao!Avrei bisogno di un grandissimo aiuto, è da 2 giorni che ci sto su..
Espongo il mio problema: devo estrarre da una table SQL un tipo "blob", inserito in precedenza come Set (x spiegarmi meglio, è stato inserito un Set di Pair-costrutto formato da String+float- in un campo blob della tabella.. ora devo estrarre i dati inseriti,ma mi da problemi di cast..

Questo il codice della tabella:
CREATE TABLE `term_vectors` (
`id_termvector` int(11) NOT NULL auto_increment,
`termvector` blob,
PRIMARY KEY (`id_termvector`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;

La parte del codice java dove vorrei estrarre il Set è invece questa:

Statement stmt = this.getJDBCConnectionLocal().createStatement(); //Crea connessione al db
ResultSet res;
Set vectorTerm = null; //NB: Set di Pair
Vector vectorSet = new Vector(); //Vector di Set di Pair
res = stmt.executeQuery("SELECT termvector FROM term_vectors");
while(res.next())
{
System.out.println(res.getBlob("termvector"));
vectorTerm = (Set)res.getBlob("termvector"); //ERRORE DI CAST!! :confused:
vectorSet.add((Set)vectorTerm);
}

Quel System.out l'ho messo per verificare cosa mi tornasse il getBlob, e questo è il risultato: com.mysql.jdbc.Blob@1cd8669
L'errore è invece questo: "java.lang.ClassCastException: com.mysql.jdbc.Blob"

Qualcuno può aiutarmi??:help: :help: :help:

andbin
10-10-2007, 21:37
vectorTerm = (Set)res.getBlob("termvector"); //ERRORE DI CAST!! :confused:getBlob() restituisce un oggetto che sicuramente implementa l'interfaccia java.sql.Blob. Tale oggetto non implementa di certo l'interfaccia Set, pertanto il cast fallisce a run-time lanciando ClassCastException.