znas ono "od kako su fenicani .." :D
salim se .. hvala tebi sto pitas a ne "budzis" to kao sto sam vidjao ... bas skoro sam video neku aplikaciju (pisali naravno, ko drugi nego indijci, od njih ni kinezi nisu gori :( ), gde je lik imao nesto tipa
tabela je:
Code:
create table t1 (id int auto_increment primary key, a int, b int);
pa je imao metodu u nekoj klasi
Code:
String getMax(){
...
try{
...
ret = db.getSingleIntValue("select max(id) from "+TABLE);
ret = ret+1;
...
} catch (Exception ex){
ret = 0;
}
...
a negde u inicijalizaciji konekcije je imao dve metode, jednu za connect() a drugu za init() gde je u connect radio konekciju na bazu a u init() radio popunjavanje konstanti (tipa onaj TABLE) ... dakle nesto tipa
Code:
connect(){
...
try{
sql.connect("localhost", "usr", "pass", "database");
} catch (Exception ex){
...
}
init(){
...
TABLE = "t1";
...
}
i u klasama gde radi sa bazom ima u konstruktoru nesto tipa
Code:
...
db.connect();
db.init();
...
a u desktruktoru negde uradi disconnect, negde ne .. nije ni bitno ... i sad sta je fora .. sad ide GENIJE !!!!
Code:
...
db.disconnect();
db = new DBmanager();
db.connect();
db.exec("insert into t1 values ("+getMax()+","0,0)");
db.init();
...
dakle GENIJE je skontao da ako ne pozove init() njegov inser radi :D ... (naravno zato sto ako ne uradi init onaj upit prsne posto nema setovano TABELA i vrati 0, a onda ovaj upit, gde je t1 hardkodirano (iako je u 99% aplikacije ime tabele u varijabli) ubije konekciju, pa je napravi ponovo, pa pozove upit (koji prodje posto getmax() vrati 0 sto je za auto_increment ok) i onda pozove init() da ostali deo ap[likacije radi kako treba ...
malo sam simplifikovo sta je covek stvarno uradio ... ali mislim da je jasno ....
zato cu ja uvek da pomognem koliko god mogu da takvih "genija" bude sve manje i manje i da ljudi sto vise i vise pocnu da prave stvari kako treba ...
nije bas direktno vezano za ovaj topic, al cisto me ponukalo da ispricam kakvih sve "programera" ima ... (ta indija je cudo, nije ni cudo obzirom sta jedu :D )