Newsgroup: it.comp.java
Titolo: RMI

ma se volessi passare un ResultSet tra un client/server RMI... come faccio.
ResultSet è un'interfaccia non serializzabile
CIAO
Grazie
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.558 / Virus Database: 350 - Release Date: 02/01/2004

 ResultSet è un'interfaccia non serializzabile
Può essere un'idiozia unica, ma un bel
public MyInter extends ResulSet implements Serializable
non funzia e/o non ti piace?
-- 
Manny Calavera
AntiSpam: CAVA²
Using M2, Opera's revolutionary e-mail client: 
http://www.opera.com/m2/

 Grazie
IMHO, a prescindere che in questo caso non lo puoi fare, non è una bella
cosa passare un ResultSet.
Potresti creare una tua struttura dati (questa si serializabile) da
popolare con i dati ottenuti dal ResultSet.
Inviato da 
www.mynewsgate.net

 non funzia e/o non ti piace?
Non credo che si possa estendere un'interfaccia!
Inviato da 
www.mynewsgate.net

 Non credo che si possa estendere un'interfaccia!
Certo che si puo.
-- 
reply: remove duh.spam.
http://javac.imap.cc

 
Nel senso un'interfaccia puo estendere una o piu interfaccie, ovviamente ;)


 Nel senso un'interfaccia puo estendere una o piu interfaccie, ovviamente ;)
Vero! Ho detto una cappellata!
Ma in verità non era ciò che mi perplimeva nonche fonte del mio sgomento...ma
dire che un'interfaccia (MyInter, è un'interfaccia visto che non lo hai scritto,
o sei ancora contento per i 100 gol di Vieri :-) ) implementa (implements
Serializable), mi sembra un controsenso.
Chiariscimi...
Inviato da 
www.mynewsgate.net

"gnazio" <8...@mynewsgate.ned.invalid> ha scritto nel messaggio
news:20040107...@mynewsgate.net...

Si farei la stessa cosa.
M.

Il 01/07/04 23:11:25, gnazio <8...@mynewsgate.ned.invalid> disse:

Umh, eh già è un interfaccia.
Scusate ma sono tornato da poco da Praha e ho perso l'abitudine a scrivere  
in italiano, non che prima...
Dici che è sbagliato?
Un interface non può essere Serializable?
Bè allora si torna alla soluzione su proposta, una struttura dati  
serializzabile che contenga un ResultSet.


alle 11:07, giovedì 8 gennaio 2004 mentre io non lo stavo filando affatto
Manny Calavera scriveva:
Non conosco RMI e non ho capito bene di cosa parlate. Ma se questo puo'
essere utile, volevo dire che un'interfaccia puo' estendere tutte e due
quelle che vi servono:
public MyInter extends ResulSet ,Serializable
se come ho capito ResultSet è anche lei un'interfaccia.
Ciao
Matteo
-- 
chi sono e soprattutto chi non sono:
http://www.ilnomedeldominio.it
un piccolo programma per studenti universitari:
http://inutility.ilnomedeldominio.it/imsv/

 serializzabile che contenga un ResultSet.
Una classe, per essere Serializable, deve contenere attributi
di tipo elementare (es. int, boolean, float...) o di tipi di dato
Serializable. Quindi siamo daccapo.
L'unica è crearsi una classe ad hoc che riproduca il contenuto
del ResultSet scorrendolo!
ResultSet non è serializable perchè è una sorta di connessione
con il database.
Puoi fare questa prova:
1) Crei uno Statement
2) Lo esegui e ottieni un ResultSet
3) Chiudi lo Statement
4) Prova a leggere il ResultSet.
L'esito di (4) è un Eccezione (non ricordo esattamente quale)
che in sostanza ti segnala che ci si è "disconnessi" dalla
base di dati. E questo perchè hai chiuso lo Statement che
ha generato il ResultSet.
Spero di essere stato sufficientemente chiaro.
Luca Paganelli

 faccio. ResultSet è un'interfaccia non serializzabile
Infatti non lo è. ResultSet non è una struttura dati, è un cursore su una 
connessione al db. Devi scorrerlo e passarti i dati in una struttura 
serializzabile (XML?).

 non funzia e/o non ti piace?
Entrambe, nell'ordine che preferisci.

 Un interface non puň essere Serializable?
Un interfaccia puň estendere Serializable e tutte le altre interfacce che 
ti pare, ma poi tu devi avere la classe concreta che implementa la tua 
interfaccia e di conseguenza anche Serializable.
Infatti puoi fare:
public interface YourPoorInter extends Resultset, Serializable
ma ti serve a ben poco se non hai una classe concreta che implementa 
YourPoorInter. Dovresti scrivertela, estendendo la classe concreta jdbc che 
implementa ResultSet e implementando i metodi di Serializable. Cosě 
capiresti il problema di rendere serializabile un resultset :)

Se poroprio devi portare il DB fino al client :-) puoi usare un CachedRowSet
Vedi qui:
http://www.jugtorino.it/newwiki/jsp/Wiki?CachedRowSet
Ciao,
    Bruno.
-- 
| Bruno Bossola 
| A Java Software Engineer :-)
| 
http://digilander.iol.it/bbossola
| Membro del JUG Torino - 
http://www.jugtorino.it

 public MyInter extends ResulSet ,Serializable
				^^^^^^^^^^^^^^^^
Questo in Java non è ammesso!!!
Non esiste l'ereditarietà multipla!
-- 
Pietro	- 
http://www.pietroweb.tk
Linux Registered User #304991
Powered by *Mandrake GNU/Linux 9.2*

 
Ma che stiamo scherzando ? Un'interfaccia può estendere tutte le 
interfacce che vuole ! Controllare la sintassi java please:
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html
Non si può estendere "a diamante" una classe, quello sì...faccio un esempio:
class Class_A {}
class Class_A_1 extends Class_A {}
class Class_B {}
class Class_B_1 extends Class_B {}
#### ERRORE, non si possono estendere 2 classi ####
class Class_C extends Class_A_1, Class_B_1 {}
Invece questo si può fare:
interface Interface_A {}
interface Interface_A_1 extends Interface_A {}
interface Interface_B {}
interface Interface_B_1 extends Interface_B {}
interface Interface_C extends Interface_A, Interface_B {}
class MiaClass implements Interface_A, Interface_A_1, Interface_B, 
Interface_B_1, Interface_C {}
e chi più ne ha più ne metta...lo so che messa così non serve a niente, 
ma in alcuni casi è comodo poter implementare più interfacce, 
soprattutto per il compilatore e il runtime che devono gestire 
EFFICIENTEMENTE le chiamate ai metodi e i cast espliciti / impliciti.
A questo punto chiedo aiuto a chi ne ha voglia di approfondire 
l'argomento o proporre qualche linkz adeguato...

 
Parlava di interfacce, non di classi.
-- 
You dont know what to do when you dont know what you're doing.
http://space.tin.it/computer/csadun