(java)seralizacja Resultset

0

witam

Borykal sie ktos z problemem zapisania obiektu Resultset do pliku
ja probowalem 2 sposobow jednak bez sutku pojawil mi sie wyjatek IOException

"com.mysql.jdbc.ResultSet"

1.sposob ten najprostszy

ObjectOutputStream otw=new ObjectOutputStream  (new FileOutputStream("prac.dat"));
otw.writeObject(r);
  1. sposobem opakowalem Resultset w inna klase ktora implemenuje Serializable
    ludzac sie ze to pomoze niestety nic nie dalo.

Jest mozliwe w ogóle wykonanie czeos takiego ?

Pozdrawiam

</quote>
0

Moim zdaniem klasa, której obiekt chcesz zapisać musi implementować serializable, czyli opakowywanie nic nie da.

Możesz zrobić 2 rzeczy.
Zaimplementować serializable w klasie Resultset(czyli ręczna modyfikacja) lub napisać klasę dziedziczącą po niej:

public class MyResultSet extends Resultset implements Serializable{}

I operować na tej klasie. Ale nie wiem, jak będzie z widocznością zmiennych i funkcji prywatnych.

0

probowale twojego sposobu ale powstal inny problem
Result Set jest inteface-em i musze zaimplementowac

jedna funkcje updateArray(..) nie wiem co mam w niej napisac
niestety od srodka to tej clasy nie znam

0
markuswww napisał(a)

probowale twojego sposobu ale powstal inny problem
Result Set jest inteface-em i musze zaimplementowac

jedna funkcje updateArray(..) nie wiem co mam w niej napisac
niestety od srodka to tej clasy nie znam

Skoro musisz ją zaimplementować, znaczy, że jest abstrakcyjna. A wiesz, jak wygląda funkcja abstrakcyjna?

public abstract void funkcja(); //nie jestem pewien położenia słowa abstract

Czyli wystarczy, że u siebie napiszesz:

public void funkcja(){}

I tyle. Z pustym ciałem.

[DOPISANE]
Zaraz zaraz.
Ty chcesz zapisać do pliku interfejs?

Synu, nie da rady. A przynajmniej nie tym sposobem.
Dlaczego? WYjaśnienie jest proste:
Nie można tworzyć obiektów klas abstrakcyjnych. A jak wiadomo, interfejs jest klasą abstrakcyjną, a dokładniej - klasą abstrakcyjną, której wszystkie metody i zmienne są abstrakcyjne.

0

Chcialem ten obiekt z danymi wewnatrz serializowac i przeslac do strumienia
niestety jak zauwarzylem zbyt duzo robty z tym jest
tych funkcji abstrakcyjncy jest zbyt duzo z zaslepianie kolejnych tylko zmniejsz a mozliwosci tej klasy

Postanowilem odebrac dane z obiektu przepisac do innego prostrzego obiektu serializowac go przeslac do strumienia.
Moze to bedzie mniej optymalne ale o niebo prostrze .

dzieki

0

Jak masz dużo metod abstrakcyjnych, to tworzysz sobie specjalną klasę. Takie klasy nazywają się Adapterami.

Ich tworzenie polega po prostu na takim czymś:

public class ResultSetAdapter implements ResultSet
{
  //tutaj implementujesz wszystkie metody abstrakcyjne Z PUSTYM CIAŁEM
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1