Avatar billede encorez Juniormester
16. september 2017 - 07:24 Der er 8 kommentarer

Udskriv mysql resultat med en variable istedet for kolonnenavnet

Hej

Det er et par år siden jeg sidst har været på eksperten, og har først nu set at eksperten.dk er overtaget af CW. Jeg håber det stadig er ligeså aktivt og hjælpsomt som den gang :)

String query = "SELECT * FROM Test_table";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
kolonne_var = name;

while (rs.next()) {                                     
    int id = rs.getInt("id");  //Det rigtige kolonne navn - virker fint
    int name_tmp = rs.getInt(kolonne_var); //Her bruger jeg en variable som indeholder kolonnenavnet, men det vil den ikke acceptere

}

"id" printer den fint ud
"name_tmp" printer ingenting ud.

Kan I hjælpe med hvordan jeg bruger en variable til hvilket kolonnenavn jeg ønsker at få fat i?
Avatar billede michael_stim Ekspert
16. september 2017 - 08:38 #1
Pröv det her:

int name_tmp = rs.getInt("{$kolonne_var}");
Avatar billede encorez Juniormester
16. september 2017 - 08:55 #2
Virker desværre ikke. Skriver: Column '{$kolonne_var}' not found.
Bruger man @ i Java?

Actually the full line says
int name_tmp= rs.getInt( columnLabel: "{kolonne_var}");

The "columnLabel:"-part it adds itself.
Avatar billede olsensweb.dk Ekspert
16. september 2017 - 09:02 #3
burde dette
kolonne_var = name;
ikke være
kolonne_var = "name";
??
Avatar billede michael_stim Ekspert
16. september 2017 - 09:04 #4
#2
Ups, tidligt. Jeg körte med PHP syntax.
Avatar billede michael_stim Ekspert
16. september 2017 - 09:08 #5
Så skal man vel deklarere sine variabler i Java, eller?

String kolonne_var = "name";
Avatar billede encorez Juniormester
16. september 2017 - 09:11 #6
Korrekt, det skal være kolonne_var = "name";
Det er det allerede i koden, jeg fik det blot ikke skrevet over i mit spørgsmål.
Avatar billede encorez Juniormester
16. september 2017 - 09:16 #7
Beklager, det ser ud til at  int name_tmp = rs.getInt(kolonne_var); virker fint.

Det var i min System.out, jeg havde lavet en fejl der gjorde det ikke blev printet. Nu virker det perfekt. Mange tak for hjælpen :)
Avatar billede arne_v Ekspert
17. september 2017 - 02:56 #8
Bare en afsluttende bemaerking.

rs.getXxxx(fldnam) virker natrurligvis ens uanset om fldnam er en String variabel eller en String literal.

Men det er rart at se at du bruger navn.

Det er desvaerre stadig ret almindeligt at se rs.getXxxx(fldix) brugt (altsaa felt indeks i.s.f. felt navn).

Fordi for 20 aar siden var der nogen som havde en tante hvis nabo havde en nevoe som havde hoert at det er hurtigere at bruge indeks end navn.

Naturligvis er det hurtigere men de nano-sekunder kan naeppe maerkes.

Men den myte er utroligt sejlivet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester