21.07.2013 Views

Kap 16_Java for Web.pdf - Akademika forlag

Kap 16_Java for Web.pdf - Akademika forlag

Kap 16_Java for Web.pdf - Akademika forlag

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Java</strong> <strong>for</strong> <strong>Web</strong>.book Page 326 Tuesday, September 24, 2002 6:07 PM<br />

<strong>Kap</strong>ittel <strong>16</strong><br />

326<br />

{<br />

ut.println(""+hode[i]+"");<br />

}<br />

vis_tabell_kropp(ut,sql,tabell,hode.length,lagRadio);<br />

}<br />

catch (Exception e)<br />

{<br />

ut.println("Kan ikke utføre operasjonen: "<br />

+e.getMessage());<br />

}<br />

}<br />

Skjemaer<br />

Det er to situasjoner hvor brukeren oppgir data ved å fylle inn skjemaer – ved registrering<br />

av nye kunder (se figur <strong>16</strong>.3) og ved registrering av nye varer (se figur <strong>16</strong>.4). Til<br />

dette benyttes metoden skjema_til_tabell, som genererer skjemaer basert på attributtene<br />

til en tabell.<br />

Metoden tar tabellens navn som parameter, og sender SQL-setningen "show<br />

columns from tabellnavn" til databasen. En tabell som inneholder navnet på alle attributtene<br />

i første kolonne returneres. Metoden itererer gjennom attributtene og lager et<br />

tekstfelt <strong>for</strong> hver attributt med navnet på attributten som <strong>for</strong>klarende tekst. Denne<br />

generiske metoden er der<strong>for</strong> i stand til å dynamisk generere skjemaer <strong>for</strong> vilkårlige<br />

tabeller. Hvert tekstfelt navngis med en tallkode i økende rekkefølge ("1", "2", "3" osv.).<br />

Brukeren fyller inn skjemaet og sender det tilbake til tjeneren. Kontrollen videre<strong>for</strong>midles<br />

til nydata som leser de utfylte feltene fra <strong>for</strong>espørselstrengen og plasserer<br />

in<strong>for</strong>masjonen i databasen med en insert-setning. Insert-setningen genereres dynamisk<br />

avhengig av hvor mange kolonner det er i tabellen.<br />

public void skjema_til_tabell(PrintWriter ut,<br />

String tabell)<br />

{<br />

try// Dynamisk skjema basert på kolonnene i en tabell.<br />

{<br />

lagHtmlHode(ut,"Fyll inn "+tabell+"detaljer",<br />

"Fyll inn feltene og trykk på send knapen.");<br />

åpneSkjema(ut);<br />

Statement stmt = dbForbindelse.createStatement();<br />

String sql = "show columns from "+tabell+";";<br />

ResultSet rs = stmt.executeQuery(sql);<br />

int kolonner=0;<br />

ut.println("");<br />

while (rs.next())<br />

{<br />

kolonner++;<br />

ut.println(""<br />

+rs.getObject(1)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!