jdbc Anfänger Tutorial gesucht

Status
Nicht offen für weitere Antworten.

creek

Mitglied
Hi.

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 ?
 

Leroy42

Top Contributor
Noch ein Tip(p):

Die Fehlermeldungen bei fehlerhaften SQL-Anfragen sind nicht wirklich
aussagekräftig.

Falls da etwas nicht funktioniert, auch mal den SQL-String ausgeben
und separat (mit einem SQL-Tool) an die Datenbank absetzen.
 

Rydl

Bekanntes Mitglied
JDBC - Tutorial für Dummies

1. Treiber - Welche Datenbank wirst du benutzen?

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:

Typ 1 - JDBC-ODBC-Bridge
Typ 2 - Native-API-Driver
Typ 3 - Network-Protocol-Driver
Typ 4 - Native-Protocol-Driver

Alle vier in deutscher Sprache

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.
Code:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
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.

3. Datenaustausch

Queries
- Statement, PreparedStatement, CallableStatement

ResultSet

...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 :/
 

creek

Mitglied
in zeile 8 und 18 soll angeblich nen fehler sein....ich check das nit...findet ihr den ?

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.ibm.db2j.jdbc.DB2jDriver");{
        con = DriverManager.getConnection(server, "ASD", "ASD");
        Statement statement = con.createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM dl_files");

%>
        <table border="1"><tr><th>Name</th><th>Age</th>
<%
        while ( rs.next() ) {
            out.println("<tr>\n<td>" + rs.getString("name") + "</td>");
            out.println("<td>" + rs.getByte("age") + "</td>"); + "</td>\n</tr>");
        }
        rs.close();
    } catch (IOException ioe) {
        out.println(ioe.getMessage());
    } catch (SQLException sqle) {
        out.println(sqle.getMessage());
    } catch (Exception e) {
        out.println(e.getMessage());
    } finally {
        try {
            if ( con != null ) {
                con.close();
            }
        } catch (SQLException sqle) {
            out.println(sqle.getMessage());
        }
    }
%>
</tr>
</table>
</body>
</html>
 

AlArenal

Top Contributor
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...
 

Leroy42

Top Contributor
Dann haben wir doch den Übeltäter:

Code:
    try 
        Class.forName("com.ibm.db2j.jdbc.DB2jDriver");{

funktioniert so nicht. Es muß heißen

Code:
    try {
        Class.forName("com.ibm.db2j.jdbc.DB2jDriver");

Außerdem ist es ja nett, daß du uns sagst.

In Zeile 8 und 18 soll angeblich ein Fehler sein

aber, kruzifix noch oamal, dann poste die Fehlermeldungen gefälligst auch. :x
 
G

Guest

Gast
hallo creek denk das AlArenal recht hat, denn den try block hat keine klammern
also was ich meine:
Code:
try{
...
}catch(Exception e){...}

du schreibts allerdings
Code:
try
...; //damit kann der kompiler nix anfangen
{
}catch(Exception e){...}

Du kannst zwar ohne klammern schreiben aber dan führ er nur die nächste zeile aus, was ja bei for schleifen ganz ok ist
 

Leroy42

Top Contributor
P.S.: Warum ist euer Wüterich ( :x ) eigentlich gelb?

Rot gefiele mir viel besser!

[schild=10 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Rote Wüterichs vor! [/schild]
 

creek

Mitglied
okay danke ;) hab den Fehler behoben das Prog läuft allerdings immer noch nicht :(

An error occurred at line: 17 in the jsp file: /ShowPeople.jsp
Generated servlet error:
Syntax error on token ";", ( expected
 

AlArenal

Top Contributor
creek hat gesagt.:
okay danke ;) hab den Fehler behoben das Prog läuft allerdings immer noch nicht :(

An error occurred at line: 17 in the jsp file: /ShowPeople.jsp
Generated servlet error:
Syntax error on token ";", ( expected

Was hältst du davon dir dann auch mal betreffende Zeile selbst genauer anzusehen? Das schreit ja geradezu!!!

Code:
out.println("<td>" + rs.getByte("age") + "</td>"); + "</td>\n</tr>");
 
N

njoerd

Gast
Zeile 21:
Code:
out.println("<td>" + rs.getByte("age") + "</td>"); + "</td>\n</tr>");

da stimmen die klammern nicht 2 auf 3 zu und da ist ein ; zuviel
 

creek

Mitglied
ich hab die Fehler gefunden...da waren auch noch nen paar andere Fehler in der Server Zeile ;)

Aber trotzdem Danke ;)
 

creek

Mitglied
Ich setz das hier einfach mal rein...

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>
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JDBC für anfänger Java Basics - Anfänger-Themen 16
A JDBC EmbeddedDriver Java Basics - Anfänger-Themen 1
C No suitable driver found for jdbc:odbc:mysql Java Basics - Anfänger-Themen 8
D JDBC wie ermittle ich den Driver? Java Basics - Anfänger-Themen 26
A Java - JDBC SQL Java Basics - Anfänger-Themen 2
A Junit Test für MysqlDataSource JDBC Java Basics - Anfänger-Themen 3
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
F Warum erhalte ich diese Fehler bei der Einbindung von SQLite JDBC in Eclipse? Java Basics - Anfänger-Themen 1
Vince42 Java 8 JDBC / OLE DB Java Basics - Anfänger-Themen 15
O JDBC Ungültiger Spaltenindex Java Basics - Anfänger-Themen 19
K JDBC - Wie ist Fehlermeldung zu interpretieren Java Basics - Anfänger-Themen 3
B Java Datenbankverbindungsfähigkeit - JDBC Java Basics - Anfänger-Themen 1
D Was genau ist JDBC? Java Basics - Anfänger-Themen 2
P Classpath jdbc-Treiber kann nach export in jar-File nicht mehr geladen werden Java Basics - Anfänger-Themen 2
M JDBC SQL Problem Java Basics - Anfänger-Themen 5
K org.h2.jdbc.JdbcSQLException: Keine Daten verfügbar Java Basics - Anfänger-Themen 9
J Oracle JDBC Driver funktioniert nur in einer Klasse Java Basics - Anfänger-Themen 2
eLogic JDBC: Relative Pfadangabe in JAR Java Basics - Anfänger-Themen 14
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
S JDBC MySQL Connector - Element mit ' eintragen? Java Basics - Anfänger-Themen 4
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
R JDBC leeres ResultSet Problem Java Basics - Anfänger-Themen 2
J Java JDBC MySQL Query Java Basics - Anfänger-Themen 6
X JDBC installieren Java Basics - Anfänger-Themen 2
F JDBC - ClassNotFoundException Java Basics - Anfänger-Themen 3
J jdbc driver on linux ? Java Basics - Anfänger-Themen 11
lenniii DB Basics (JDBC-Treiber) Java Basics - Anfänger-Themen 16
P Servlets und JDBC Java Basics - Anfänger-Themen 2
B JDBC DB2 Connection Java Basics - Anfänger-Themen 1
C OOP JDBC: Ausgabe ResultSet nach Select Java Basics - Anfänger-Themen 3
D Probleme mit jdbc Java Basics - Anfänger-Themen 9
T JDBC Problemchen Java Basics - Anfänger-Themen 2
B JDBC Treiber lokal installieren ? Java Basics - Anfänger-Themen 2
B JDBC: Bereits in der DB vorhandene Abfrage ausführen Java Basics - Anfänger-Themen 7
G Oracle SQL JDBC in Eclipse laden Java Basics - Anfänger-Themen 2
G Maven Dependency für Oracle JDBC-Driver korrekt festlegen Java Basics - Anfänger-Themen 4
G JDBC - Classpath - Ich werd wahnsinnig! Java Basics - Anfänger-Themen 18
J Fehler bei MySql Anbindung mit JDBC Java Basics - Anfänger-Themen 4
G welche Java-Technologie für JDBC geeignet Java Basics - Anfänger-Themen 6
N JDBC Problem Java Basics - Anfänger-Themen 5
M Datenbankzugriff via JDBC Java Basics - Anfänger-Themen 8
S JDBC und NullpointerException Java Basics - Anfänger-Themen 5
S JDBC Verbindungen Java Basics - Anfänger-Themen 2
M JDBC Treiber LGPL Java Basics - Anfänger-Themen 11
D JDBC Treiber unter dem Java Application Server Java Basics - Anfänger-Themen 6
J java und jdbc mit access Java Basics - Anfänger-Themen 3
J JDBC Crash Kurs Java Basics - Anfänger-Themen 3
D Einige Fragen zu Java Java2D JDBC usw. XD Java Basics - Anfänger-Themen 13
D Kleines Problem mit JDBC Java Basics - Anfänger-Themen 2
T SWT-Tabelle aus JDBC füllen Java Basics - Anfänger-Themen 8
H JDBC in den Klassenpfad eintragen Java Basics - Anfänger-Themen 4
J jdbc getTableName Java Basics - Anfänger-Themen 12
R JDBC Verbindung geht nicht Java Basics - Anfänger-Themen 4
S Problem mit JDBC und Transaktion Java Basics - Anfänger-Themen 12
G hilfe jsp/servlet,jdbc api running on tomcat server+webProxy Java Basics - Anfänger-Themen 8
K JDBC - Typ Connection in jeder Klasse neu öffnen? Java Basics - Anfänger-Themen 4
A JDBC modular Java Basics - Anfänger-Themen 2
megachucky nochmal JDBC. komme nicht weiter. Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben