Vorhandene JDBC-Anwendung in Liberty implementieren
Sie können eine vorhandene Anwendung, die Java™ Database Connectivity (JDBC) und eine Datenquelle verwendet, auf einem Server implementieren.
Informationen zu diesem Vorgang
Sie können eine vorhandene JDBC-Anwendung in Liberty implementieren. Dazu fügen Sie das Liberty-JDBC-Feature der Datei server.xml hinzu. Außerdem müssen Sie Code hinzufügen, der dem Server die Position des JDBC-Treibers mitteilt und Eigenschaften angeben, die der JDBC-Treiber verwendet, um die Verbindung zur Datenbank herzustellen.
Das folgende Beispiel verwendet das Feature jdbc-4.0. In diesem Beispiel können Sie Ihre Servletanwendung erweitern oder Sie verwenden die hier angegebene Anwendung, um zu testen, ob die über den JDBC-Treiber verwendete Interaktivität erwartungsgemäß funktioniert.
Vorgehensweise
- Erstellen Sie einen Server.
- Starten Sie den Server.
- Nehmen Sie die Liberty-Features
jdbc-4.0 und
servlet-3.0 in die Datei server.xml auf.
<server> <featureManager> <feature>jdbc-4.0</feature> <feature>servlet-3.0</feature> </featureManager> </server>
Wenn Sie überprüfen möchten, dass der Server ausgeführt wird und die Features erfolgreich aktiviert wurden, rufen Sie hierzu die Datei console.log auf, die sich im Verzeichnis logs auf dem Server befindet. Sie können zum Anzeigen einen beliebigen Texteditor verwenden. Im Folgenden sehen Sie ein Beispiel:
[AUDIT ] CWWKF0012I: Im Server wurden die folgenden Features installiert: [jdbc-4.0, jndi-1.0]. [AUDIT ] CWWKF0008I: Die Featureaktualisierung wurde in 0,326 Sekunden durchgeführt.
- Geben Sie den Datenbanktyp und das Datenquellenverzeichnis in der Datei server.xml an.
Pfad_zu_Derby ist die Position, an der Derby auf Ihrem Betriebssystem installiert ist, lib ist der Ordner, in dem sich die Datei derby.jar befindet, und data/exampleDB ist das Verzeichnis, das erstellt wird, sofern es nicht bereits vorhanden ist.
Beispiel:
Weitere Informationen zu weiteren Optionen für die Codierung von Datenquellendefinitionen finden Sie unter Ref-Tags in Konfigurationsdateien verwenden.<jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/> <library id="DerbyLib"> <fileset dir="C:/path_to_derby/lib" includes="derby.jar"/> </library> <dataSource id="ds1" jndiName="jdbc/exampleDS" jdbcDriverRef="DerbyEmbedded"> <properties.derby.embedded databaseName="C:/Pfad_zu_Derby/data/exampleDB" createDatabase="create" /> </dataSource>
- Fügen Sie Ihrer JDBC-Anwendung einige SQL-Anweisungen (z. B. create, read, update oder delete) hinzu, um die Interaktivität mit der Datenbank zu testen.
package wasdev; import java.io.*; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.annotation.Resource; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.WebServlet; import javax.sql.DataSource; @WebServlet("/HelloWorld") public class HelloWorld extends HttpServlet { @Resource(name = "jdbc/exampleDS") private DataSource ds1; private Connection con = null; private static final long serialVersionUID = 1L; public HelloWorld() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<H1>Hello World Liberty</H1>\n"); try { con = ds1.getConnection(); Statement stmt = null; stmt = con.createStatement(); // Tabelle erstellen stmt.executeUpdate("create table cities (name varchar(50) not null primary key, population int, county varchar(30))"); // Testdatensatz einfügen stmt.executeUpdate("insert into cities values ('myHomeCity', 106769, 'myHomeCounty')"); // Datensatz auswählen ResultSet result = stmt.executeQuery("select county from cities where name='myHomeCity'"); result.next(); // Informationen zum Bezirk der Stadt anzeigen out.println("The county for myHomeCity is " + result.getString(1)); // Tabelle freigeben, um Bereinigung auszuführen und Testwiederholung zu ermöglichen. stmt.executeUpdate("drop table cities"); } catch (SQLException e) { e.printStackTrace(); } finally { if (con != null){ try{ con.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
- Kompilieren Sie Ihre Anwendung.
Liberty-Pfad ist die Position, an der Sie Liberty auf Ihrem Betriebssystem installiert haben, und Pfad_zur_Anwendung ist die Position der Java-Datei der Anwendung, die Sie kompilieren möchten.
Beispiel unter Windows:C:\> javac -cp Liberty-Pfad\wlp\dev\api\spec\com.ibm.ws.javaee.servlet.3.0_1.0.1.jar Pfad_zur_Anwendung\HelloWorld.java
Beispiel unter Linux:Wenn der Befehl javac nicht erkannt wird, stellen Sie sicher, dass das Java-Verzeichnis bin in der Umgebungsvariablen PATH Ihres Betriebssystems enthalten ist.mo@machine01:~> javac -cp Liberty-Pfad/wlp/dev/api/spec/com.ibm.ws.javaee.servlet.3.0_1.0.1.jar Pfad_zur_Anwendung/HelloWorld.java
- Fügen Sie die Anwendung dem Server hinzu. In diesem Beispiel wird die JDBC-Anwendung im Verzeichnis dropins auf dem Server gespeichert.
...\dropins\HelloWorldApp.war\WEB-INF\classes\wasdev\HelloWorld
Das Verzeichnis wasdev verwendet denselben Paketnamen, der in HelloWorld.java verwendet wird.
- Prüfen Sie, ob Ihre JDBC-Anwendung funktioniert.
Rufen Sie für dieses Beispiel die URL http://localhost:9080/HelloWorldApp/HelloWorld auf.
Der Port 9080 ist der HTTP-Standardport, der vom Liberty-Server verwendet wird. Sie können in der Datei server.xml prüfen, welcher HTTP-Port für Ihren Server definiert ist.
Die Browserausgabe für dieses Beispiel sieht wie folgt aus:
Hello World Liberty The county for myHomeCity is myHomeCounty

Dateiname: twlp_dep_jdbc.html