Kap 16_Java for Web.pdf - Akademika forlag
Kap 16_Java for Web.pdf - Akademika forlag
Kap 16_Java for Web.pdf - Akademika forlag
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)