obiekty czy tak to robić? java

0

Witam mam pytanko ponieważ chciałem zrobić obiekt typu
pytania i np

public class question{

private String question,anwser;
private int id;

public Question(String question,String answer,int id){
this.question = question;
...
}
gettery settery
i zrobiłbym jeszcze Manager gdzie mam liste z pytaniami i metody
add/remove/get(int id)/list
i
pytania w pliku były by tak zapisywane
id,question,answe
tylko mam takie problemy

  1. jak robić auto-inkrementacjie id bo ogółem nie chciałbym mieć w konstruktorze int id
  2. do pliku pytania chciałbym mieć tak jakbym mieć posortowane tylko taki problem jeśli np mam pytania 0 - 100 i usune 55 to bym miał taką dziure tzn 53,54,56,57
    i jakby wtedy zmienić id by czegoś takiego nie było?
0

A musisz takie cuda robić? Nie możesz użyć jakiejś plikowej bazy jak np. HSQL i do tego JPA? ;] A jeśli nie to serializuj za pomocą JAXB do XMLa.

0

no ale po co?
chce zrobić Obiekt Question
ponieważ robie quiz
i nie wiem jak zrobić ten Question a dokładnie auto inkrementacje id

1

Ale jedno drugiego nie wyklucza. JPA tak właśnie dziala ze tworzysz sobie obiekt jaki tam chcesz a potem używasz JPA do zapisywania tego w "bazie danych" i do odczytywania z bazy. Przy okazji masz tam takie bajery jak autoinkrement.

0

w klasie która jest tym opakowaniem do którego wrzucasz te obiekty możesz robić:

pytanie.setId(pytania.size());
pytania.add(pytanie);

gdzie pytania to Lista albo Mapa

0

@up ok a jak zrobić z tym "naprawniame"id w pliku?

0
Michał:) napisał(a):

no ale po co?
chce zrobić Obiekt Question
ponieważ robie quiz
i nie wiem jak zrobić ten Question a dokładnie auto inkrementacje id

Auto-inkrementację zrobisz w ten sposób, że będziesz pobierał ostatni wiersz w twojej bazie, który będzie miał największą wartość id. I potem +1. W przypadku braku wierszy w bazie plikowej to zaczynasz od 1.

Po operacji usunięcia przelecisz całą bazę plikową w rekordach, które mają id większe od usuniętego i obniżysz im id o 1.

0

Czemu nie użyjesz jakiejś bazy danych i do tego DAO pattern? Do twojego problemu pasuje jak ulał. Autoinkrementacją zajmie się baza.

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