Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa bazom

[es] :: Java :: problem sa bazom

[ Pregleda: 2242 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SteleStudent

Član broj: 119868
Poruke: 50
*.dynamic.sbb.rs.



Profil

icon problem sa bazom21.08.2008. u 10:28 - pre 189 meseci
Dakle imam server klijent aplikaciju u kojoj koristim bazu. E sad imam dve tabele u bazi od kojih je jedna zapisnik a druga stavka zapisnika - tj. u pitanju su slab i jak objekat :D. E sad prilikom ubacivanja zapisnika ubaciju se i 0, 1 ili vise stavki u bazu. Posto koristi autoincrement u bazi za ID zapisnika prilikom transakcije unosa zapisnika ne znam ID a treba mi jer taj podatak moram da ubacim u svaku od stavki u istoj toj transakciji. Kako da saznam koji ID zapisnika je zadao prilikom iste te transakcije DBMS? Koristim j-connector driver za mysql bazu. Konkretno koristim EasyPHP MySql bazu.
Poz i unapred hvala.
 
Odgovor na temu

grizzly
Beograd

Član broj: 7978
Poruke: 262



+4 Profil

icon Re: problem sa bazom25.08.2008. u 14:15 - pre 189 meseci
Mislim da imas neku definisanu funkciju koja ce ti reci koji ce broj biti dodeljen sledecem redu. Cini mi se da sam nesto slicno video citajuci dokumentaciju za hSQLdb pa verovatno ima i tu...
 
Odgovor na temu

LightBow
London

Član broj: 4829
Poruke: 158
89.243.45.*



+1 Profil

icon Re: problem sa bazom25.08.2008. u 21:28 - pre 189 meseci
Jedan od nacina je da pre nego sto uneses zapisnik, prvo selectujes sve redove iz tabele i prebrojis koliko ih ima, npr u while petlji za ResultSet ubacis counter. Kada zavrsi petlja, taj counter povecas za jedan i to ti je ID sledeceg (novog) zapisnika.
Ovako sam ja radio ali verujem da to nije najelegantnije resenje
 
Odgovor na temu

grizzly
Beograd

Član broj: 7978
Poruke: 262



+4 Profil

icon Re: problem sa bazom25.08.2008. u 22:42 - pre 189 meseci
Tu elegantnosti nema ni u tragovima :)

Posebno sto ako se obrise neki slog...
 
Odgovor na temu

Tulex
Danguba
Novi Sad

Član broj: 170959
Poruke: 121
91.148.88.*



Profil

icon Re: problem sa bazom26.08.2008. u 08:19 - pre 189 meseci
Najelegantnije resenje bi bilo kao sto je @grizzly predlozio, da sql to ucini za tebe.
Manje elegantan nacin je da pre unosa trazis MAX id i onda taj broj povecas za jedan,
posto se autoincrement ne vraca da popuni neka id mesta koja si ti naknadno obrisao vec samo neki svoj counter povecava za 1.
Znaci trazenje max id i povecavanje za jedan je identicno autoincrement-u.
 
Odgovor na temu

dragon.mi

Član broj: 146873
Poruke: 25
*.jprb-kolubara.co.yu.



Profil

icon Re: problem sa bazom02.09.2008. u 07:43 - pre 189 meseci
Probaj na ovaj nacin:

session.save(zapisnik);
session.flush(); // Namece da se izvrsi insert naredba nad bazom i da se ubaci zapisnik
session.refresh(zapisnik); // Ponovo se ucitava prethodno uneti zapisnik pomocu jedne select naredbe
System.out.println( zapisnik.getZapisnikId() ); // Ovde bi trebao da je dostupan id zapisnika

// sada mozes da dodajes stavke zapisnika
 
Odgovor na temu

vesokov
Developer

Član broj: 192923
Poruke: 2
79.143.100.*



Profil

icon Re: problem sa bazom06.09.2008. u 11:55 - pre 189 meseci

U Oracle-u je to jednostavno izvesti. Rezervises sekvencu za rekord koji ces da insertujes i sacuvas informaciju o njoj da bi mogao da je insertujes
u neku drugu tabelu, tako da uvijek imas konzistentne podatke.
Medjutim u MySQL-u nemas sekvence tako da moras programski da rjesavas.
Postoji funkciju koja vraca id posljednjeg insertovanog rekorda i zove se last_insert_id().
I onda moze da zavrsi posao. Ali ako radis u visekonkurentnom okruzenju, moraces da
programski rijesis nesinhronizovano insertovanje u tabelu.
Druga mogucnost jeste da simuliras sekvence u MySQL-u
kao sto je objasnjeno ovdje:
Code:
http://forge.mysql.com/tools/tool.php?id=7

 
Odgovor na temu

[es] :: Java :: problem sa bazom

[ Pregleda: 2242 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.