Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich wollte mich mal mit den Verbindung zwischen javaservlets und ner SQL DB beschäftigen... Bin aber blutiger Anfänger und such nen möglichst leicht verständliches Anfänger Tutorial... Könnt ihr mir da weiterhelfen ?
und Tipp:
teste Datenbankzugriff und bestimmte Anfragen/ Ergebnisverarbeitung erstmal in normalen Java-Programm mit System.out.println oder in einer GUI,
nicht in einem Servlet mit x Sekunden Wartezeit für jeden kleinen Test
Um eine Verbindung zu einer Datenbank herstellen zu können, braucht man als erstes den richtigen Treiber. Es gibt vier verschiedene Arten(Typen) von DB-Treibern:
Typ 1 & 2 sind Platform abhängige und Typ 3 & 4 sind Platform unabhängige Treiber. Erklärungen zu den einzelnen Typen finden sich bei Wikipedia wunderbar erklärt:
Je nachdem für was man sich entscheidet geht es weiter mit dem Runterladen des entsprechenden Treibers. Dieser muss dann dem ClassPath hinzugefügt werden, sodass er beim Bauen des Programms dabei ist.
[für Eclipse nutzer: Project --> Properties --> Java Build Path --> Libraries --> Add Jar oder Add external Jar]
2. Verbindung herstellen
Dieser Punkt besteht im Wesentlichen aus zwei Schritten: dem Laden des Treiber(1) und dem Aufbau der Verbindung(2).
Code:
import java.sql.*;
Der Import der sql Klassen ist der erste Schritt, um über die JDBC funktionen zu verfügen.
(1)
Als Beispiel zum Laden eines Treibers nehme ich, weil ich es grad zur Hand habe, einen MSSQL Treiber.
Diese Zeile erschafft eine Instanz des Treibers und meldet ihn beim Driver Manager an.
Auf diese Weise kann man so viele Treiber laden, wie man will, beim Herstellen der Verbindung sucht der Driver Manager automatisch den passenden raus, falls man mit verschiedenen DBs arbeiten möchte.
(2)
Im zweiten Schritt, dem Aufbau der Verbindung muss man über eine URL zum DB-Server, sowie über einen Login und ein Passwort verfügen. Alle Inforamtionen müssen als Strings dem Connection Objekt übergeben werden.
Code:
Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");
Connection ist ein Interface, weshalb hier kein new zu sehen ist.
...hmm ich geh erstmal was essen, was halten die admins und mods davon, wenn ich das hier zu ende schreibe und das tutorial ins faq kommt? ..hmm, obwohl... das galileo buch ist ja auch schon recht umfassend :/
Was soll das "{" em Ende von Zeile 11? Gehört ja wohl an den ANfang, bzw. ans Ende von 10. Besorg dich mal ne IDE, die dir sowas schon beim Coden anzeigt...
ich hab diese JSP Seite geschrieben und sie gibt aus was in der tabelle "dl_files" steht, nun möchte ich allerdings etwas in die tabelle hinzufügen...allerdings komm damit gerade überhaupt nicht weiter... vllt. könnt ihr mir da ja helfen
in der tabelle dl_files möchte ich z.B einen Eintrag hinzufügen
wie würde die zeile den lauten ? statement.executeUpdate("") ???
hier der quellcode
Code:
<html>
<head>
<title>Test jDBC Verbindungen</title>
</head>
<body>
<%@ page language="java" import="java.sql.*, java.io.*" %>
<%
Connection con = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://server;user=***;password=****");
Statement statement = con.createStatement();
statement.executeUpdate("INSERT INTO dl_files(filename, gen_key) VALUES ('testfile0005', '123456789')")
ResultSet rs = statement.executeQuery("SELECT * FROM dl_files");
%>
<table border="3"><tr><th>id</th><th>Datei</th><th>Dateiname</th><th>MD5</th><th>Key</th><th>Ablaufdatum</th>
<%
while ( rs.next() ) {
out.println("<tr>\n<td>" + rs.getInt("id") + "</td>"); // Gibt die id aus
out.println("<td>" + rs.getString("datei") + "</td>");
out.println("<td>" + rs.getString("filename") + "</td>"); // Gibt den Dateinamen aus
out.println("<td>" + rs.getString("md5") + "</td>"); // Gibt den MD5 Hash aus
out.println("<td>" + rs.getString("gen_key") + "</td>"); // Gibt den gen. Key aus
out.println("<td>" + rs.getString("ret_date") + "</td>"); // Gibt das Ablaufdatum aus
out.println("\n</tr>");
}
rs.close();
} catch (IOException ioe) {
out.println("IOE Fehler: "+ioe.getMessage());
} catch (SQLException sqle) {
out.println("sqle Fehler: "+sqle.getMessage());
} catch (Exception e) {
out.println("e Fehler: "+e.getMessage());
} finally {
try {
if ( con != null ) {
con.close();
}
} catch (SQLException sqle) {
out.println("SQL Fehler: "+sqle.getMessage());
}
}
%>
</tr>
</table>
</body>
</html>