Gå til innhold

Java Og Connector/j INSERT INTO med while *LØST*


Anbefalte innlegg

Etter mye leting frem og tilbake fikk jeg connecta osv, lagd et par nye databaser og tabeller, tilogmed puttet endel verdier inn i dem med abselutte verdier, men her kommer problemet

 


boolean done = true;
int teller;
String nm = 1;
String val = "etellerannet";
            
while(!done){
     state.executeUpdate("INSERT INTO ny_tabell(auto) VALUES(NULL)");
     state.executeUpdate("INSERT INTO  ny_tabell(numb)VALUES(nm)");
     state.executeUpdate("INSERT INTO ny_tabell(varchar) VALUES(val)");
     if(teller == 100) done = false;
}

 

gir meg feil, mens hvis jeg gir abselutt verdi så git tabellen men meg 100 med "nm" i "numb" feltet, men det skulle vært 100 "etellerannet"

 

state.executeUpdate("INSERT INTO  ny_tabell(numb)VALUES('nm')");

 

 

Hvorfor fungerer det ikke å ha en løkke for å bruke variabler å sende til INSERT INTO query'en? Hvorfor funker det kun med abselutte verdier?

 

PS. dette er et konstruert ekempel, so dont question the logic.

Endret av aC
Lenke til kommentar
Videoannonse
Annonse
Hvorfor fungerer det ikke å ha en løkke for å bruke variabler å sende til INSERT INTO query'en? Hvorfor funker det kun med abselutte verdier?

8014936[/snapback]

Du bruker ikke variabler, du har laget en helt vanlig streng.

 

Istedenfor:

state.executeUpdate("INSERT INTO  ny_tabell(numb)VALUES(nm)");

Må du skrive:

state.executeUpdate("INSERT INTO  ny_tabell("+numb+")VALUES("+nm+")");

Lenke til kommentar
Hvorfor fungerer det ikke å ha en løkke for å bruke variabler å sende til INSERT INTO query'en? Hvorfor funker det kun med abselutte verdier?

8014936[/snapback]

Du bruker ikke variabler, du har laget en helt vanlig streng.

 

Istedenfor:

state.executeUpdate("INSERT INTO  ny_tabell(numb)VALUES(nm)");

Må du skrive:

state.executeUpdate("INSERT INTO  ny_tabell("+numb+")VALUES("+nm+")");

8016099[/snapback]

 

Tusen takk for svar raskt svar, og beklager for sent svar fra min side. Har fortsatt litt problemer da.

 

state.executeUpdate("INSERT INTO  ny_tabell("+numb+")VALUES("+nm+")");

Her får jeg at "variable numb might not have been initialized" når jeg kompilerer

 

Slik jeg har forstått syntaxen er den delen : ny_tabell("+numb+") feltet i sql tabellen verdien skal legge seg?

og VALUES("+en_variabel+") verdien som skal legges der? eller er jeg helt på jordet?

Og da, er det riktig at jeg skal bruke " + .. + " etter ny_tabell ?

 

beklager amatørmessige spørsmål her :blush:

 

alle innspill blir satt pris på :p

 

ps. databasen = ny_db

tabellen = ny_tab

og tabellen har feltene 1. auto (autoincremen)

2. numb (varchar(50) skal bli int etterhvert )

3. varchar (elendig navn kalle den noe annet senere)

Endret av aC
Lenke til kommentar

Ok skjønte det!"!! tatt meg noen dager dette.

state.executeUpdate("INSERT INTO  ny_tabell("+numb+")VALUES("+nm+")");

er riktig for en verdi som f.eks int eller tall, men for tekst strenger er jo sql kommandoen

INSERT INTO tabell (felt1,felt2,....,feltn) VALUES (verdi_felt1,'verdi_felt2' osv);

hele poenget, jeg glemte '' apostroffene i VALUES (' ') for strenger...

Lenke til kommentar

Ah, da har jeg misforstaatt noe. Slik skal det se ut:

 

int auto = 1;
int numb = 2;
String varchar = "test";

state.executeUpdate("INSERT INTO  ny_tab(auto, numb, varchar) VALUES("+auto+","+numb +","+varchar+")");

Altså, INSERT INTO ny_tab(auto, numb, varchar) definerer tabellen og feltene som skal brukes (blir sendt til databasen slik du ser strengen). VALUES("+auto+","+numb +","+varchar+")") henter verdiene i variablene auto, numb og varchar. Egentlig ser strengen slik: VALUES(1,2,test) (henter verdiene som er definert over.

 

Her får jeg at "variable numb might not have been initialized" når jeg kompilerer

Betyr at du ikke har definert java-variabelen numb. (f.eks. int numb;). Siden det er litt vanskelig å følge nøyaktig hva du egentlig vil med halvferdige eksempler, forslår jeg at du poster hele koden din ved neste spørsmål.

Lenke til kommentar

vel vel, skjønner at jeg kanskje burde ha satt meg bedre inn i sql før jeg begynte å begi meg ut på den lange vanskelige reisen over databaser. Skjønte ikke før jeg så noen INSERT INTO sql kommandoer hva jeg egentlig drev med.

 

Men igjen tusen takk for innlegg, fant svært lite om dette på nettet holdte på å gjøre meg halvsprø.

 

PS. det er helt riktig at jeg ikke skjønte at sql komandoen jeg sendte var en streng :innocent:

 

<-- tired and goes to bed :)

Endret av aC
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...