uloha z Javy
Re: uloha z Javy
vymazal som tie uvodzovky a uz to funguje, diky za radu
edit... ALE neviem preco vzdy vypise cenu 2.1 ??????????????
edit... ALE neviem preco vzdy vypise cenu 2.1 ??????????????
Re: uloha z Javy
skus pridat za kazdy case break;
Re: uloha z Javy
moje prve riesenie uz finguje vdaka vsetkym za rady
to Javatar: ale nepaci sa mi ze moje riesenie nedokaze pracovat podla zadania... napr. ked chce zakaznik cukor naviac preto to teraz skusam riesit trochu aj podla tvojho navrhu, ale nie je mi moc jasny, mohol by si to popisat trochu podrobnejsie?
to Javatar: ale nepaci sa mi ze moje riesenie nedokaze pracovat podla zadania... napr. ked chce zakaznik cukor naviac preto to teraz skusam riesit trochu aj podla tvojho navrhu, ale nie je mi moc jasny, mohol by si to popisat trochu podrobnejsie?
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
jasne popisem...
vies aka je to abstraktna trieda?
je to trieda bez konstruktoru ktora sa neda priamo vytvorit
a naco je to dobre? da sa z nej dedit a vsetky atributy a metody sa zdedia a abstraktne metody sa musia dodefinovat inak trieda neprejde kompilaciou
nebudes prisady riesit ako interface ale ako abstraktnu triedu... a preco? mozes podedit atribut dvojita typu boolean a uz v konstruktore sa spytat na to ci bude alebo nebude dvojita (alebo to zahrnut v konstruktore pomocou parametrou)
nechas jej abstraktnu metody vypoctu ceny - alebo ak dvojita ingrediencia vzdy znamena dvojitu cenu pokojne nemusi byt ani abstraktna(dalsia vyhoda abstraktnej triedy oproti interface - neurcujes len ake metody ma potomok ale tie spolocne mozes pokojne aj zadefinovat) ale len vypocitas cenu podla cennika alebo z atributu cena (your choice) pripadne das krat dva ak dvojita==true
chapeme sa alebo chces kod?
vies aka je to abstraktna trieda?
je to trieda bez konstruktoru ktora sa neda priamo vytvorit
a naco je to dobre? da sa z nej dedit a vsetky atributy a metody sa zdedia a abstraktne metody sa musia dodefinovat inak trieda neprejde kompilaciou
nebudes prisady riesit ako interface ale ako abstraktnu triedu... a preco? mozes podedit atribut dvojita typu boolean a uz v konstruktore sa spytat na to ci bude alebo nebude dvojita (alebo to zahrnut v konstruktore pomocou parametrou)
nechas jej abstraktnu metody vypoctu ceny - alebo ak dvojita ingrediencia vzdy znamena dvojitu cenu pokojne nemusi byt ani abstraktna(dalsia vyhoda abstraktnej triedy oproti interface - neurcujes len ake metody ma potomok ale tie spolocne mozes pokojne aj zadefinovat) ale len vypocitas cenu podla cennika alebo z atributu cena (your choice) pripadne das krat dva ak dvojita==true
chapeme sa alebo chces kod?
Re: uloha z Javy
hej chapem, nieco som si aj precital o abstraktnej triede a je mi jasne ako si to myslel
//autoeditácia príspevku (02 Dec 2010, 17:22)
mam taketo dalsie zadanie...
vdaka
//autoeditácia príspevku (02 Dec 2010, 17:22)
mam taketo dalsie zadanie...
chcem sa opytat akym sposobom by bolo vhodne to robit, ci udaje z objektov ukladat do databazy jednotlivo, alebo ich ukladat prostrednictvom nejakych kontajnerov, alebo ak mozete nejako inak poraditÚloha 1
Navrhnite program, ktorá bude ukladať do databázy dva objekty:
Osoba
Auto
Atribúty týchto tried nie sú dôležité, zvoľte si 2 - 3 ľubovoľné atribúty pre každú triedu.
Treťou triedou programu bude UkladacObjektov. Táto trieda bude vedieť uložiť tieto objekty do databázy.
Navrhnite tieto tri triedy tak aby Osoba a Auto nevedeli o tom, že sú ukladané do databázy = neobsahujú teda žiaden SQL príkaz. SQL príkazy vytvára trieda UkladacObjektov
Dôležité je aby ste triedy navrhli tak, aby ste okrem Osoby a Auta mohli pridať ďalšie a UkladacObjektov by sa nemusel zmeniť
Pri spustení programu nemusíte zadávať atribúty objektov Osoba a Auto, môžu byť pevne zadané v kóde alebo sa pri každom spustení vygenerujú náhodné. Stačí vložiť 2-3 objekty z každého druhu.
Nemusíte sa obmedziť iba na tieto triedy. Riešenie môže obsahovať ďalšie triedy resp. rozhrania.
vdaka
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
ponuknem ti viac rieseni:
1. jednoduche: ulozis objekt do databazy ako BLOB, a budes mat v triede UkladacObjektov metodu UlozObjekt(Object o) kde urobis connect nad databazou a potom vlozis ako objekt do databazy ( http://dev.mysql.com/doc/refman/5.0/en/blob.html )
2. este jednoduchsie: definujes rozhranie kde trieda (Auto) vypise v jednom stringu svoje atributy oddelene neakym znakom, splitnes ich a nasledne v metode UlozObjekt(String tabulka, String[] stplce, String[] hodnoty) urobis connect a insert
3. univerzalne jak prasa: pouzijes java.reflections, a podla nazvu triedy vlozis atributy objektu do databazy, pokial databaza neobsahuje tabulku pre danu triedu tak ju vytvoris
na tvojom mieste by som siel cestou 2
1. jednoduche: ulozis objekt do databazy ako BLOB, a budes mat v triede UkladacObjektov metodu UlozObjekt(Object o) kde urobis connect nad databazou a potom vlozis ako objekt do databazy ( http://dev.mysql.com/doc/refman/5.0/en/blob.html )
2. este jednoduchsie: definujes rozhranie kde trieda (Auto) vypise v jednom stringu svoje atributy oddelene neakym znakom, splitnes ich a nasledne v metode UlozObjekt(String tabulka, String[] stplce, String[] hodnoty) urobis connect a insert
3. univerzalne jak prasa: pouzijes java.reflections, a podla nazvu triedy vlozis atributy objektu do databazy, pokial databaza neobsahuje tabulku pre danu triedu tak ju vytvoris
na tvojom mieste by som siel cestou 2
Re: uloha z Javy
no neviem vela som nerozumel asi je toho na mna vela
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
tak podrobnejsi popis riesenia
vytvoris si interface VlozitelnyDoDatabazy a definujes mu metodu VypisAtributy - toto si uz robil takze vies ako na to
v objektoch ktore chces vlozit do databazy nasledne v MetodeVypis atributy vypises atributy - normalne v jednom stringu (atribut1.toString()+"\n"+atribut2.toString() atd.) pricom ich vzdy oddelis neakym znakom (v mojom pripade to bol "\n" - cize enter)
Vies ako mas tvorit objekt ktory vklada do databazy? Lebo v nom potom vyuzivas tu metodu pri tvorbe jednotliveho insertu (SQL prikaz)
vytvoris si interface VlozitelnyDoDatabazy a definujes mu metodu VypisAtributy - toto si uz robil takze vies ako na to
v objektoch ktore chces vlozit do databazy nasledne v MetodeVypis atributy vypises atributy - normalne v jednom stringu (atribut1.toString()+"\n"+atribut2.toString() atd.) pricom ich vzdy oddelis neakym znakom (v mojom pripade to bol "\n" - cize enter)
Vies ako mas tvorit objekt ktory vklada do databazy? Lebo v nom potom vyuzivas tu metodu pri tvorbe jednotliveho insertu (SQL prikaz)
Re: uloha z Javy
pri databazach sme robili len SELECTVies ako mas tvorit objekt ktory vklada do databazy? Lebo v nom potom vyuzivas tu metodu pri tvorbe jednotliveho insertu (SQL prikaz)
Kód: Vybrať všetko
String sql = "SELECT id FROM tajj";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
tak neviem ci sa pouziva pre INSERT nejaky iny sposob
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
na inserty sa pouziva statement.executeUpdate(sql prikaz ako string)
teda
nemusis pre kazdy insert tvorit osobitny statement (ako v pripade selectu)
syntax prikazu insert:
INSERT INTO nazov_tabulky (zoznam_stlpcov) VALUES (hodnoty_jednotlivych_stlpcov_do_ktorych_chces_vkladat_vporadi_urcenom_v_zozname_stlpcov)
aspon MySql ma taku syntax
teda
Kód: Vybrať všetko
Statement s = conn.createStatement();
s.executeUpdate(sql);
syntax prikazu insert:
INSERT INTO nazov_tabulky (zoznam_stlpcov) VALUES (hodnoty_jednotlivych_stlpcov_do_ktorych_chces_vkladat_vporadi_urcenom_v_zozname_stlpcov)
aspon MySql ma taku syntax
Re: uloha z Javy
Kód: Vybrať všetko
String sql = "insert into TABLE_AUTO (ZNACKA, MODEL, FARBA) values ('BMW', 'M6', 'zlta');";
Statement s = connection.createStatement();
s.executeUpdate(sql);nevies v com moze byt chyba? lebo ked som ten sql prikaz spustil v scrapbooku, tak sa spustil a vykonal bez problemov, aj v do databazy sa zapisal
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
nechaj si v catch bloku do konzoly vypisat chybu exception a napis ju sem
Kód: Vybrať všetko
catch(Exception ex){
System.out.println(ex.toString());
}
Re: uloha z Javy
toto je ona
odstanil som zo sql prikazu bodkociarku a uz to funguje, ale este stale neviem ako ulozim tie hodnoty do databazy, teraz tam mam len sql prikaz pre konkretne hodnoty, to rozhranie ktore si mi poradil som spravil
Kód: Vybrať všetko
java.sql.SQLSyntaxErrorException: Syntax error: Encountered ";" at line 1, column 75.-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
no jednoducho 
sql prikaz je jednoduchy string, insert into musi byt na zaciatku, potom identifikujes do ktorej tabulky to chces dat a podla toho uz len ten string skladas
chapes ci ches kod?
sql prikaz je jednoduchy string, insert into musi byt na zaciatku, potom identifikujes do ktorej tabulky to chces dat a podla toho uz len ten string skladas
chapes ci ches kod?
Re: uloha z Javy
no takto... v rozhrani mam metodu vypisAtributy();
v triede Auto ju mam definovanu takto....
neviem ci si to tak myslel ty....
no a ja konkretne neviem ako z tej metody dostat atributy do toho Stringu sql
a este jedna otazka.... nebolo by jednoduchsie vyskladat ten sql prikaz pomocou get metod z triedy Auto?
v triede Auto ju mam definovanu takto....
Kód: Vybrať všetko
public void vypisAtributy() {
System.out.println(znacka.toString()+ "\n" + model.toString() + "\n" + farba.toString());
}
no a ja konkretne neviem ako z tej metody dostat atributy do toho Stringu sql
a este jedna otazka.... nebolo by jednoduchsie vyskladat ten sql prikaz pomocou get metod z triedy Auto?
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
uvazujes dobre - no a teraz cez metodu split dostanes pole hodnot ktore chces vlozit do databazy
vidim ze sa moc nechapeme, ale teraz nemam cas pisat ti kod... snad zajtra
bolo, ale to by si porusil univerzalnost triedy ukladajucej do databazy a to v zadani nemas...yankee napísal: a este jedna otazka.... nebolo by jednoduchsie vyskladat ten sql prikaz pomocou get metod z triedy Auto?
vidim ze sa moc nechapeme, ale teraz nemam cas pisat ti kod... snad zajtra
Re: uloha z Javy
skusal som to robit pomocou tej split metody ale nefungovalo mi to, a stale neviem ako napisat triedu ktora vytvori ten sql prikaz, takze som sa ani trochu neposunul dalej. skusal som aj googlit a nasiel som aj veci ktore mi sice fungovali (myslim priklady s tou metodou split), ale nevedel som ako to zakomponovat do moho programu
ak by si mal cas, skus poradit ako dalej. budem velmi vdacny
ak by si mal cas, skus poradit ako dalej. budem velmi vdacny
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
nuz tak teda trochu tvojej vdaky prijmem - predpokladame ze trieda sa vola auto a tabulka t_auto -> bolo by dobre keby malo rozhranie nie len vypis atributov ale aj nazvov atributov
uz sa chapeme? ak nie - napis SS, pokusim sa najst cas a vysvetlim cez skype/teamviewer
Kód: Vybrať všetko
public void InsertToDatabase(Insertable i){
StringBuilder SQLCommand = new StringBuilder();
SQLCommand.append("INSERT INTO t_");
SQLCommand.append(i.getClass().getName());
SQLCommand.append(" (");
for (String s : i.AttNames().split("\n")){
SQLCommand.append(s).append(",");
}
SQLCommand.deleteCharAt(SQLCommand.length()-1);
SQLCommand.append(") VALUES (");
//takymto sposobom vyskladas cely string
...
...
//potom uz len vytvoris connection a zavolas executeUpdate(SQLCommand.toString())
}
Re: uloha z Javy
chapem uz ako si to myslel, ale mam este par otazok...
neviem co je vstupny parameter metody (Insertable i) i by mal byt objekt triedy?
no a k tym atribudom, ktore maju byt ukladane do databazy..
ja mam taketo vzorove triedy Auto a Osoba
ako spravim rozhranie pre atributy ked maju odlisny charakter?
neviem co je vstupny parameter metody (Insertable i) i by mal byt objekt triedy?
no a k tym atribudom, ktore maju byt ukladane do databazy..
ja mam taketo vzorove triedy Auto a Osoba
Kód: Vybrať všetko
package cabadaj;
public class Auto implements VlozitelnyDoDatabazy{
private String znacka;
private String model;
private String farba;
public static String tabulka = "TABLE_AUTO";
public Auto(String znacka, String model, String farba) {
this.znacka = znacka;
this.model = model;
this.farba = farba;
}
public void setZnacka(String znacka) {
this.znacka = znacka;
}
public String getZnacka() {
return znacka;
}
public void setModel(String model) {
this.model = model;
}
public String getModel() {
return model;
}
public void setFarba(String farba) {
this.farba = farba;
}
public String getFarba() {
return farba;
}
public void vypisAtributy() {
System.out.println(znacka.toString() + "\n" + model.toString() + "\n" + farba.toString());
}
}Kód: Vybrať všetko
package cabadaj;
public class Osoba {
private String meno;
private String priezvisko;
private String pohlavie;
public static String tabulka = "TABLE_OSOBA";
public Osoba(String meno, String priezvisko, String pohlavie) {
this.meno = meno;
this.priezvisko = priezvisko;
this.pohlavie = pohlavie;
}
public void setMeno(String meno) {
this.meno = meno;
}
public String getMeno() {
return meno;
}
public void setPriezvisko(String priezvisko) {
this.priezvisko = priezvisko;
}
public String getPriezvisko() {
return priezvisko;
}
public void setPohlavie(String pohlavie) {
this.pohlavie = pohlavie;
}
public String getPohlavie() {
return pohlavie;
}
public void vypisAtributy() {
System.out.println(meno.toString()+ "\n" + priezvisko.toString() + "\n" + pohlavie.toString());
}
}
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: uloha z Javy
insertable je pre mna to iste co pre teba vlozitelnydodatabazy je to rozhranie
no a tomu rozhraniu si definoval vypis atributy a este mu definuj metodu vypis nazvy atributov aby si vedel mena stlpcov tabulky... alebo ich tiez vyries cez staticke stringy
no a tomu rozhraniu si definoval vypis atributy a este mu definuj metodu vypis nazvy atributov aby si vedel mena stlpcov tabulky... alebo ich tiez vyries cez staticke stringy