JSP (Tomcat) mit MySQL-Datenbank SEW(3) HOWTO Erstellen eines NetBeans-JSP Projekts mit MySQL-DB Inhalt 1 Server in NetBeans einrichten... 2 1.1 Tomcat... 2 1.2 MySQL-Server Registrieren... 2 1.3 Connection zum MySQL-Server erstellen... 3 2 MySQL-Datenbank erstellen... 4 2.1 Neue Datenbank mit NetBeans erstellen... 4 2.1.1 Datenbank anlegen... 4 2.1.2 Tabelle anlegen... 4 2.1.3 Daten in Tabelle einfügen... 6 2.2 Bestehende Datenbank mit phpmysql exportieren und importieren... 7 2.2.1 SQL-Skript für Datenbank erstellen... 7 2.2.2 Datenbank aus SQL-Skript erstellen... 7 3 Web-Projekt erstellen... 8 3.1 Neues Web-Projekt... 8 3.2 JSP-Datei vorbereiten... 8 3.3 Context.xml... 9 3.4 Web.xml... 9 3.5 JSTL-Libraries hinzufügen... 11 3.6 Datenbankabfrage in JSP-Datei einbauen... 12 3.7 INSERT/UPDATE/DELETE über Java... 13 4 Webseite veröffentlichen... 14 4.1 MySQL J-Connector installieren... 14 4.2 NetBeans... 14
1 Server in NetBeans einrichten 1.1 Tomcat Wenn im Reiter Services unter dem Eintrag Servers kein Apache Tomcat eingetragen ist, dann mit dem Add Server -Befehl einen hinzufügen. 1. Server Apache Tomcat auswählen: 2. Installationspfad von Tomcat auf der Festplatte auswählen: 1.2 MySQL-Server Registrieren Sollte im Reiter Services unter dem Eintrag Databases noch kein MySQL Server vorhanden sein, dann mit dem Register MySQL-Server Befehl einen registrieren: Sollte das Registrieren nicht klappen, dann im Reiter Admin Properties die Kommandos einstellen (Pfade entsprechend anpassen):
1.3 Connection zum MySQL-Server erstellen Java Web-Applications greifen immer über eine Connection auf die Datenbank zu. So wird eine Connection zu einer bestehenden Datenbank auf einem SQL-Server erstellt. 1. Rechts-Click auf die Datenbank 2. Die neue Connection erscheint dann ganz unten im Databases-Container: Die für später benötigte JDBC-url ist der ganze Text links vom Fragezeichen, hier z.b. jdbc:mysql://localhost:3306/computershop
2 MySQL-Datenbank erstellen 2.1 Neue Datenbank mit NetBeans erstellen 2.1.1 Datenbank anlegen 1. Mit dem Create Database.. Befehl auf dem MySQL-Server eine neue Datenbank anlegen 3. Die Datenbank wird in einer neuen Connection angezeigt: 2. und Zugriffsrechte einstellen: 2.1.2 Tabelle anlegen
1. Tabelle korrekt benennen: 2. Spalten hinzufügen über [Add Column ]: 3. Die fertige Tabelle sieht so aus: WICHTIG: Mit NetBeans kann kein automatischer Zähler für die article_id gesetzt werden! Das muss man direkt mit SQL machen: ALTER TABLE `articles` MODIFY `article_id` int(11) NOT NULL AUTO_INCREMENT;
2.1.3 Daten in Tabelle einfügen
2.2 Bestehende Datenbank mit phpmysql exportieren und importieren Dazu das Tool phpmyadmin verwenden (das wird mit XAMPP automatisch installiert). Im Browser folgende URL aufrufen: http://localhost/phpmyadmin 2.2.1 SQL-Skript für Datenbank erstellen 1. Links im Menübaum die zu exportierende Datenbank auswählen, hier z.b. computershop 2. Rechts den Reiter Exportieren anklicken 3. Achtung: hier unterscheiden sich die verschiedenen Versionen von phpmyadmin. Folgende Einstellungen: Exportieren als: SQL Struktur und Daten exportieren 4. Auf [OK] (oder [Export]) klicken, über den Browser wird eine.sql-datei heruntergeladen. 2.2.2 Datenbank aus SQL-Skript erstellen 1. Im linken Tab unter phpmyadmin auf das Haus- Icon klicken (Home). 2. Im rechten Tab den Reiter SQL auswählen 3. Dort im Texteingabefeld den Inhalt der SQL-Datei über die Zwischenablage hineinkopieren 4. Sollten im SQL-Skript die CREATE DATABASE Statements fehlen, dann wie im Screenshot unten dargestellt die folgenden Zeilen (im Bild 22 bzw. 23) hinzufügen: CREATE DATABASE computershop; USE computershop;
3 Web-Projekt erstellen 3.1 Neues Web-Projekt 1. Neues Web Application -Projekt: 2. Projektname eingeben 3. Apache Tomcat-Server auswählen 4. keine weiteren Frameworks benötigt 3.2 JSP-Datei vorbereiten Neue JSP-Datei erzeugen. Eine HTML-Tabelle erstellen als Grundgerüst, später wird diese Tabelle mit den Daten aus der Datenbank befüllt:
3.3 Context.xml In der context.xml-datei stehen die Ressourcen, die in den NetBeans-Projekten verwendet werden können. Die context.xml Datei befindet sich bereits im Web-Projekt im Unterverzeichnis META-INF und kann von dort aus geöffnet werden. In unserem Beispiel wird der Connection zur Datenbank jdbc:mysql://localhost:3306/computershop als Ressource mit dem Namen jdbc/computershop angelegt. In den NetBeans Projekten wird später ausschließlich der Name verwendet. 3.4 Web.xml In der web.xml-datei stehen u.a. Referenzen auf jene Ressourcen, die im Web-Projekt direkt verwendet werden. Die web.xml-datei befindet sich im Unterverzeichnis WEB-INF und kann von dort geöffnet werden. Sollte diese noch nicht vorhanden sein, dann muss man sie über den Menübefehl File/New File anlegen. Im New File -Dialog kann man nach web.xml filtern und dann den File Type Standard Deployment Descriptor auswählen und erstellen lassen: Für web.xml gibt es in NetBeans einen grafischen Editor, wenn man den Reiter References wie unten dargestellt auswählt.
Dort kann man im Bereich Ressource References einfach auf den [Add..]-Button klicken und den Popup-Dialog entsprechend ausfüllen: Zur Kontrolle: in der Source-Ansicht
3.5 JSTL-Libraries hinzufügen Für die SQL-Abfragen in die Datenbank Tabellen wird die JSTL-Library verwendet. Diese ermöglich die Abfragen und das Auslesen der Felder ähnlich wie bei HTML mittels Tags zu steuern. Die JSTL-Libraries fügt man hinzu indem man in der Projektansicht mit der rechten Maustaste auf Libraries klickt und den Befehl Add Library ausführt. 1. aus der Global Libraries -Liste die JSTL- Library heraussuchen und mit [Add Library] hinzufügen: 2. Zur Kontrolle: in der Projektansicht kommen zwei JSTL-Libraries dazu:
3.6 Datenbankabfrage in JSP-Datei einbauen Zunächst muss in der JSP-Datei festgehalten werden, dass JSTL verwendet wird. Das geschieht über die <%@taglib... Anweisungen, die man am besten direkt unter der Zeile mit <%@Page... schreibt - siehe unten: Die SQL-Abfragen werden dann mittels <sql: -Tags definiert. Die Darstellung der Tabelle aus der Datenbank geschieht über die <c: -Tags zum durchwandern der Zeilen der Tabelle und den ${.} -Ausdrücken zum auslesen der Werte.
3.7 INSERT/UPDATE/DELETE über Java Möchte man per Java-Code etwas in die Datenbank eintragen, z.b. zum Registrieren eines neuen Benutzers, dann funktioniert das folgendermaßen: Hinweis: die für dieses Beispiel notwendige Tabelle erzeugt man so: CREATE TABLE users ( id INT AUTO_INCREMENT NOT NULL, login VARCHAR(32) NOT NULL, pwd VARCHAR(32) NOT NULL, PRIMARY KEY (id) );
4 Webseite veröffentlichen 4.1 MySQL J-Connector installieren 1. Den MySQL J-Connector herunterladen und installieren. 2. Auf der Festplatte die Datei mysql-connector-java-5.1.34-bin.jar (oder neuer) suchen und in das Unterverzeichnis lib der Tomcat-Installation kopieren. 4.2 NetBeans Auf der Werkzeugleiste den Play-Button klicken (Run Project) und damit das Web-Projekt kompilieren, builden, deployen und einen Browser mit der welcome-seite ausführen: