SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

SOFTWARE

I-7. JSP zur Anzeige einer Datenbanktabelle

Das folgende Programmierbeispiel soll in einem HTML-Formular die Verbindungsdaten zu einer Datenbank erfragen und dann per JSP-Datei eine Tabelle aus dieser Datenbank als HTML-Tabelle darstellen.

Benötigt werden also zwei Dateien:
- Die HTML-Datei 'DbTabelleLesen.htm' enthält das HTML-Formular.
- Die JSP-Datei 'DbTabelleLesen.jsp' nimmt die Verbindungsdaten vom HTML-Formular entgegen, stellt eine Verbindung zur Datenbank her, liest die Datenbanktabelle aus und erzeugt denHTML-Code für die HTML-Tabelle, der zur Darstellung an denWebbrowser geschickt wird.

Speichern Sie den folgenden HTML-Code in der Datei 'DbTabelleLesen.htm'im Verzeichnis '.../Tomcat/webapps/ROOT'. Bitte beachten:Diese HTML-Datei hat die Dateiendung '.htm', während dieim '<form>'-Tag beim 'action'-Attributeingetragene Datei die Dateiendung '.jsp' hat.

<html>
<body>

<form method="post"action="DbTabelleLesen.jsp"><pre>
Db-Treiber  <input size=60type="text" name="prmDbDrv" value='org.hsqldb.jdbcDriver'><br>
Db-URL      <input size=60 type="text" name="prmDbUrl" value='jdbc:hsqldb:C:/hSqlDbData/myDB'> <br>
Benutzer     <input size=60 type="text"     name="prmUsr"   value='sa'><br>
Kennwort     <input size=60 type="password" name="prmPwd"   value=''><br>
Tabellenname <input size=60 type="text"     name="prmTab"   value=''><br>
SQL-Kommando <input size=60 type="text"     name="prmSql"   value=''> (optional)<br>
             <input type="submit" name="submit" value="Datenbanktabelle anzeigen">
</pre></form>

</body>
</html>


Speichern Sie den folgenden JSP-Code in der Datei 'DbTabelleLesen.jsp' im Verzeichnis '.../Tomcat/webapps/ROOT':

<html>
                                       <body>
                                       
                                       <%@ page import="java.sql.*" isThreadSafe="false" %>
                                       
                                       <%
                                         String sDbDrv = request.getParameter( "prmDbDrv" );
                                         String sDbUrl = request.getParameter( "prmDbUrl" );
                                         String sUsr   = request.getParameter( "prmUsr" );
                                         String sPwd   = request.getParameter( "prmPwd" );
                                         String sTable = request.getParameter( "prmTab" );
                                         String sSql   = request.getParameter( "prmSql" );
                                       
                                         if( null != sTable && 0 <  sTable.length() &&
                                            (null == sSql   || 0 == sSql.length())  )
                                           sSql = "SELECT * FROM " + sTable;
                                       
                                         if( null == sDbDrv || 0 >= sDbDrv.length() ||
                                             null == sDbUrl || 0 >= sDbUrl.length() ||
                                             null == sSql   || 0 >= sSql.length() )
                                         {
                                           out.println( "<br>Fehler: Mindestens Db-Treiber und Db-URL "
                                                      + "sowie entweder Tabellenname oder SQL-Kommando "
                                                      + "müssen ausgefüllt werden!<br>" );
                                         }
                                         else
                                         {
                                           Class.forName( sDbDrv );
                                           Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
                                           Statement         st   = cn.createStatement();
                                           ResultSet         rs   = st.executeQuery( sSql );
                                           ResultSetMetaData rsmd = rs.getMetaData();
                                           int n = rsmd.getColumnCount();
                                           out.println( "<table border=1 cellspacing=0><tr>" );
                                           for( int i=1; i<=n; i++ )    // Achtung: erste Spalte mit 1 statt 0
                                             out.println( "<th>" + rsmd.getColumnName( i ) + "</th>" );
                                           while( rs.next() )
                                           {
                                             out.println( "</tr><tr>" );
                                             for( int i=1; i<=n; i++ )  // Achtung: erste Spalte mit 1 statt 0
                                               out.println( "<td>" + rs.getString( i ) + "</td>" );
                                           }
                                           out.println( "</tr></table>" );
                                           rs.close();
                                           st.close();
                                           cn.close();
                                         }
                                       %>
                                       
                                       <br><a href="DbTabelleLesen.htm">Zurück zum Eingabeformular</a>
                                       
                                       </body>
                                       </html>
                                       

Im HTML-Formular wird für den Db-Treiber 'org.hsqldb.jdbcDriver' und für die Db-URL 'jdbc:hsqldb:C:/hSqlDbData/myDB' vorgeschlagen. Diese Vorgaben können Sie durch die für Ihre Datenbank passenden Texte ersetzen und so zur Laufzeit auf unterschiedliche Datenbanken umschalten. Unter techdocs/java-sql.htm#JDBC finden Sie die entsprechenden Einträge für verschiedene SQL-Datenbanken.

Können Sie auf keine bereits installierte Datenbank zugreifen, können Sie die vorgeschlagenen Vorgabewerte so lassen. Sie setzen eine installierte hSqlDb-Datenbank voraus. Deren Installation ist sehr einfach:
- Beenden Sie Tomcat
- Kopieren Sie die Datei 'hsqldb.jar' in das Verzeichnis '%JAVA_HOME%/jre/lib/ext'
- Erzeugen Sie das Datenverzeichnis 'C:\hSqlDbData'
- Erzeugen Sie in diesem Datenverzeichnis die Datenbank 'myDB' mit einer ersten Testtabelle (z.B. 'xx')
Diese Schritte sind genauer unter techdocs/java-sql.htm#hSqlDb beschrieben.

Das obige Source-Code-Beispiel ist funktionsfähig, aber ohne Fehlerbehandlung.

Starten Sie Tomcat und starten Sie die Anwendung im Webbrowser mit der Eingabe der URL "http://localhost/DbTabelleLesen.htm" bzw. von einem anderen Rechner aus mit "http://<TomcatServerIPAdresseOderComputername>/DbTabelleLesen.htm".

Geben Sie gültige Datenbankzugangsdaten und einen gültigen Tabellennamen ein, z.B. so:
- Erster Test: nur Tabellenname, z.B. 'xx'
- Zweiter Test: SQL-Kommando, z.B. 'SELECT i, d FROM xx WHERE i=123;'

Bitte beachten Sie unbedingt die wichtigen Kommentare zu diesem Programmierbeispiel unter techdocs/jsp.htm#DatenbankTabelleAnzeigen. Weitergehendes finden Sie unter techdocs/java-sql.htm und techdocs/sql.htm.
 

 

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere