Zum Inhalt springen

Datenbankverbindung mit Java


puppet

Empfohlene Beiträge

also ich hab das zwar schon in einem anderen thema als antowrt gepostet, ich hoffe das wird mir jetzt nicht uebel genommen, wenn ich ein eigenes thema daraus mache ^^

Also, ich hab da auch mal eine Frage. Ich bin gerade dabei einen Vokabeltrainer zu schreiben, der als Datenbank eine MySql Datenbank benutzen soll.

Es soll möglich sein, das man vokabeln hinzufuegt, löscht usw.

(Prüfungsmodus ist auch vorgesehen, halt das uebliche alles)

mein Problem ist jedoch, das ich per javaapplet nicht auf die Datenbank komme.

import java.awt.*;

import java.io.*;

import java.sql.*;

public class auslesen

{

private Connection con = null;

private Statement s = null;

private Connection connect()

{

String dbdriver = "com.mysql.jdbc.Driver";

String dburl = "jdbc:mysql:linux13.toptip.de";

String dbuser = "username";

String dbpassword = "passwort";

Class.forName(dbdriver);

return DriverManager.getConnection (dburl, dbuser,dbpassword);

}

}

das hab ich mal so nachgebaut, jedoch kommt schon beim compilieren eion fehler mit verweis auf die zeile mit dem getConnection...

wär echt super wenn mir jemand helfen koennte oder mir ein paar tipps zum umgang mit mysql db's ueber java geben koennte.

gruß

p.s. ich hatte geplant das applet auf meinem webspace laufen zu lassen, auf dem gleichens erver wie der space liegta uch die datenbank.

Link zu diesem Kommentar
Auf anderen Seiten teilen

die fehlermeldung ist doch sehr eindeutig. du hast das komplette exceptionhandling vergessen.

sowohl Class.forName() als auch DriverManager.getConnection() können exceptions werfen.

im einfachsten fall einfach einen try/catch()-block um beide statements:

try {

Class.forName(dbdriver);

return DriverManager.getConnection (dburl, dbuser,dbpassword);

} catch (Exception e) { System.err.println(e); }

alternativ kann auch die deklaration methode connect() ändern:

private Connection connect() throws Exception

dann muss allerdings das exception-handling weiter oben erfolgen. du solltest dich allerdings vorher mit den grundlagen vertraut machen, exception-handling gehört zu den grundlagen.

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

import java.awt.*;

import java.io.*;

import java.sql.*;

public class auslesen

{

private Connection con = null;

private Statement s = null;

private Connection connect()

{

String dbdriver = "com.mysql.jdbc.Driver";

String dburl = "jdbc:mysql:linux13.toptip.de";

String dbuser = "user";

String dbpassword = "pw";

try

{

Class.forName(dbdriver);

return DriverManager.getConnection (dburl, dbuser,dbpassword);

}

catch (Exception e)

{

System.err.println(e);

return e;

}

}

}

[...] java:25: incompatible types

found : java.lang.Exception

required: java.sql.Connection

return e;

:\ sobald ich die verbindung hab und weiß wie ich per applet aucvh befehle an die datenbank schicken kann, kann ich den rest alleine....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du solltest dir dringend bevor du mit deinen Versuchen zur Dsatenbankanbindung fortfährst nochmal die Grundlagen von Java und objektorientierter Programmierung ansehen. Eine Exception innerhalb eines Catch-Blocks als Rückgabewert zurückzugeben zeugt von mangelndem bis nicht vorhandenem Verständnis der grundlegenden Sprachkonzepte.

Ansonsten wirst du immer wieder an den simpelsten Stellen mit Problemen zu tun haben, die überhaupt nichts mit deinem aktuellen Anwendungsfall zu tun haben und dich verdammt viel Zeit und Aufwand kosten. Erst verstehen, was man tut, dann tatsächlich mit der Arbeit anfangen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tatsache ist, daß jemand, der Java beherrscht, dieses Problem in null komma nix beheben kann. Es ist nämlich ein reines Java Problem.


try

{

  Class.forName(dbdriver);

  return DriverManager.getConnection (dburl, dbuser,dbpassword);

}

catch (Exception e)

{

  System.err.println(e);

  return null;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

wie genau laeuft das ab ?
Wieso suchst du nicht einfach mal über eine Suchmaschine deines Vertrauens ein wenig? Das geht deutlich schneller als hier ein Posting abzusetzen, auf die Antwort zu warten, Rückfragen zu stellen und so weiter.

Als Anlaufstellen z.B.:

http://java.sun.com/docs/books/tutorial/jdbc/index.html

http://www.javaolympus.com/J2SE/Database/JDBC/JDBC.jsp

http://www.stardeveloper.com/articles/display.html?article=2003090401&page=1

http://www.cs.unc.edu/Courses/wwwp-s98/members/thornett/jdbc/

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok und sagen wir ich moechte "rs" also das ergebnis nun zeile fuer zeile ausgeben, gibt es da eine moeglichkeit wie in php z.B: das als array zu speichern und dann die einzelnen teile anszusprechen. zum beispiel

$array[testspalte1]

und das kannman ja dann leicht ueber eine whileschleife ausgeben.^

//edit

ich wollte eigentlich erst aeine textdatei als datenbank nehmen, meint ihr das waer einfacher gewesen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

--> ok habs grad geschafft, so laesst er sich compilieren. aber ioch lade es auf den space und fuehre es aus. und dann kommt "fehler beim laden des applets"

http://www.the-puppet.de/Daten/Websites/javatest/Auslesen.html

da liegt es und eigentlich sollte ermir jetzt den inhalt der spalte "vokabel" ausgeben...

der code :

import java.awt.*;

import java.applet.*;

import java.awt.*;

import java.io.*;

import java.sql.*;

public class Auslesen extends Applet

{

private Connection con = null;

private Statement s = null;

String dbdriver = "com.mysql.jdbc.Driver";

String dburl = "jdbc:mysql://linux13.toptip.de";

String dbuser = "bn";

String dbpassword = "pw";

public void init ()

{

}

private Connection connect()

{

try

{

Class.forName(dbdriver);

return DriverManager.getConnection (dburl, dbuser,dbpassword);

}

catch (Exception e)

{

System.err.println(e);

return null;

}

}

Statement stmt =

DriverManager.getConnection (dburl, dbuser,dbpassword).createStatement();

ResultSet rs = stmt.executeQuery("Select * from vokabeln");

public void paint(Graphics g)

{

while (rs.next())

{

g.drawString(" "+rs.getInt(vokabel),10,100);

}

}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...