plusone

5. November 2011

MySQL mit JSP

Moin ihr Nachtaktiven,

Annonymous kündigt Angriffe auf Vox und Facebook an... und das am 5. November - historischer Tag.
Und für diejenigen, die sich dennoch mit speichern von Daten befassen wollen, widmen wir uns heute dem Ansteuern der MySQL aus einer JSP.

Ja, für einen Android-Developer-Blog schlage ich mit JSP eine andere Seite auf. Aber wenn ihr mit WebViews arbeitet und auch noch von JQueryMobile, dann kennt ihr die Vorteile von JSP für eine Client-Server-Architektur.
Solltet ihr euch schon tiefer mit Java EE befasst haben, schlage ich euch die Nutzung von Servlets!


So ich brauchte für mein derzeitiges Vorhaben eine Datenbank und ich hab eine Weboberfläche.

Dieses Tutorial geht davon aus, dass ihr bereits Tomcat und MySQL-Server installiert und zum Laufen gebacht habt. Und Kentnisse in SQL besitzt.

Als erstes brauchen wir die Datenbanktreiber(Bibliothek).
Diese findet ihr unter http://dev.mysql.com/downloads/connector/j (mysql-connector-java).

Bei einer normalen Application, müsstet ihr jetzt die Bibliothen zum build path hinzufügen. Bei einem Webprojekt mit JSP und Tomcat verläuft es anders.
Die Bibliothek muss bei euren JSP-Projekt in den lib-Ordner vom Tomcat.
In meinem Fall wäre es C:\Programme\Tomcat_6.0\lib\.

Diesere Ordner beinhaltet alle Bibliotheken, womit euer Tomcat arbeitet.

Kommen wir dazu, wie wir unsere Java-Klasse schreiben. Ich habe meine Datenbankanbindung über eine Java-Klasse releasiert. Eine Alternative wäre in der jsp-Datei das zu implementieren, aber das halte ich für weniger Klug, da diese bei jedem Seitenaufruf durchgelaufen werden.
Bei mir wird die Datenbankverbidung nur Einmal im Projekt zur Laufzeit erstellt und gehalten.

try {
            // laden der MySQL-Treiber
            Class.forName("com.mysql.jdbc.Driver");
            // Datenbankverbindung
            Connection connect = DriverManager
                    .getConnection("jdbc:mysql://localhost/tprojekt?"
                            + "user=root&password=meinpw");

        } catch (SQLException e) {
            e.printStackTrace();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }


Erst die Treiber laden, dann die Verbindung herstellen. Meine Datenbankschema heißt in meiner lokalen Datenbank tprojekt. Und ich loge mich mit dem Benutzer root und den Password meinpw ein.
Damit ist die Initialisierung abgeschlossen, jetzt kommen wir zu den SQL-Statements und wie wir diese absetzten bzw. das Ergebnis auslesen.
Statement statement;
ResultSet resultSet;
       
try {
    // erlaubt Queries abzusetzten
    statement = connect.createStatement();
  
    // Resultat des SQL-Statements
    resultSet = statement
            .executeQuery("SELECT text, title FROM testtabelle");

    while (resultSet.next()) {
         String text = resultSet.getString("text");
         String title = resultSet.getString("title");
    }

} catch (SQLException e) {
    e.printStackTrace();

} finally {
    try {
        if (resultSet != null) {
            resultSet.close();
        }
       
    } catch (SQLException e) {
        e.printStackTrace();
    }
  
    try {
        if (statement!=null) {
            statement.close();
        }
       
    } catch (SQLException e2) {
        e2.printStackTrace();
    }
}
Die Klasse Statement beinhaltet mehr Methoden, die ihr nutzen könnt.
Eigentlich doch genau so, wie in jeder anderen Sprache auch oder? Die Sonderheit, dass die connector-Bibliothek in den lib-Ordner von Tomcat kopiert werden muss und im build path nicht reicht, ist auch nicht so verzweifelnd. Alles lösbar!

In dem Sinne ein erfolgreichen 5. November und gute Nacht.
Alexander Fink

2 Kommentare:

Stefan Wienströer hat gesagt…

Hast du schon was fertig, was man sich ansehen kann?^^

Unknown hat gesagt…

Ne leider noch nicht.
Es ist nur eine Pre-Beta für das Grundgerüst und das auch nur Lokal.

Ich muss mir erst Mal einen kleinen V-Server für den ersten Versuch holen..

Kommentar veröffentlichen