# Datenbank URL



## HeymaNn (11. Jun 2008)

Hallo,
ich möchte über Java mit der JDBC Schnittstelle eine Verbindung zu einer SQL Datenbank erstellen,
die auf meiner Homepage liegt.
Kennst sich jemand damit aus? Woher weiß ich, was für einen Treiber mein Server unterstützt?
Und wie heißt die URL der Datenbank? Einfach die URL der Seite?
Viele Danke!


----------



## javasimon (11. Jun 2008)

na auf der homepage wird die DB wohl eher nicht liegen! ev. auf dem selber server... zuerst musst du mal wissen was für eine DB du da hast! und dann hilft dir auf jeden fall google weiter! suche einfach nach einem tutorial zu deiner DB und java.
am beispiel von MySql:
driver: mysql-connector http://www.mysql.de/products/connector/j/
db pfad: jdbc:mysql://$hostname:$port/$dbName


----------



## homer65 (12. Jun 2008)

Auch dürfte das wahrscheinlich unmöglich sein, da die meisten Provider auf ihren Servern kein Java für den Nutzer vorsehen und ein Connect von außen auf ihre Datenbanken unterbinden.


----------



## ARadauer (12. Jun 2008)

> Auch dürfte das wahrscheinlich unmöglich sein, da die meisten Provider auf ihren Servern kein Java für den Nutzer vorsehen und ein Connect von außen auf ihre Datenbanken unterbinden.


stimmt so nicht. ich hab seiten bei sprit.org und all-inkl.com liegen, und ich komm von aussen über diverse tools und auch eigene java programme auf meine mysql datenbanken.

@HeymaNn wo hostest du deine internetseiten? zu 99% ist es eine mysql tabelle, such mal nach tutorials wie man in java mysql anspricht, da gibt es unzählige...

url für den db server ist wirklich oft die url für die homepage


----------



## heymaNn (12. Jun 2008)

hm ok danke, ich habe ne website von goneo und ich glaube, die untersützen keine externen zugriffe.
also habe ich jetzt mal xampp installiert und ne lokale datenbank angelegt.
die url müsste doch localhost/test heißen oder?
außerdem habe ich mir diesen mysql connector runtergeladen und mysql-connector-java-5.1.6-bin.jar in das verzeichnis meines programms kompiert.
So geht das doch oder muss ich den irgendwo installieren?
Und nun mein Quellcode:

import java.sql.*;

public class jdbctest
{
	public static void main(String[] args)
	{

		try 
		{
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		}
		catch (Exception e)
		{
			System.out.println(e.getMessage() + "aa");
		}

		try
		{

		Connection con = DriverManager.getConnection("jdbc:mysql://localhost:80/test", "root", "");
		}
		catch (SQLException e)
		{
			System.out.println(e.getMessage());
		}
	}
}

Aber es kommt immer der Fehler: no suitable driver found usw ...
wo liegt der fehler?
vielen dank schonmal


----------



## homer65 (13. Jun 2008)

Der Connector/J muß nicht in das Unterverzeichnis in dem das Programm liegt, sondern in den Classpath. Außerdem ist der default Port einer MySQL Datenbank nicht 80, sonder 3306.


----------



## HeymaNn (13. Jun 2008)

aber ist mein classpath nicht standardmäßig der ordner der anwendung? andere classes kann ich ja auch problemlos ohne classpath zu setzen einbinden.
Und wenn nicht wie setze ich ihn und wo soll dann die connector datei hin?
mit port 3306 klappt das obige prog auch nicht


----------



## homer65 (14. Jun 2008)

Mit welchem Befehl unter welchem Betriebssystem rufst du dein Programm auf?


----------



## Gast (14. Jun 2008)

ich habe windows xp, und benutze den java editor joe. da gehe ich dann einfach auf compilieren udn starten


----------



## homer65 (15. Jun 2008)

Den joe kenne ich leider nicht. Unter XP kann man den Aufruf einer Klasse wie folgt machen:
java -cp pfad klasse
Dabei ist klasse die aufzurufende Klasse und pfad der Classpath. Dabei ist zu beachten, das für einzelne Klassen nur die Directory angegeben wird, in der die Klassen stehen. Bei jar Files ist jedoch der Name des jar Files komplett anzugeben.
Guck mal hier:
http://en.wikipedia.org/wiki/Classpath_(Java)


----------



## Gast (15. Jun 2008)

hm da kommt auch der gleiche fehler, er kann sich irgendwie nicht mit der datenbank verbinden -.-


----------



## homer65 (15. Jun 2008)

Dann schreib doch mal genau auf, wie du das Javaprogramm aufrufst.


----------



## Gast (15. Jun 2008)

also ich starte das prog aus dem joe, und das geht jetzt auch soweit, ich habe die mysql connector jar datei einfach in das java verzeichnis kopiert.
jetzt kann ich also den treiber laden, aber immer noch keine verbindung herstellen.
es kommt nämlich folgender fehler: communication link failure. last packet sent to the server was 0ms ago.

Quellcode:
import java.sql.*;

public class jdbctest
{
	public static void main(String[] args)
	{

		try 
		{
			Class.forName("com.mysql.jdbc.Driver");
		}
		catch (Exception e)
		{
			System.out.println(e.getMessage() + "aa");
		}

		try
		{


	Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/abc", "abc", "abc");
		Statement stmt = con.createStatement();

		}
		catch (SQLException e)
		{
			System.out.println(e.getMessage() + "aaaaaaaaaaaa");
		}
	}
}

Und ich habe mir xampp runtergeladen, die datenbank liegt also auf meinem lokalen rechner


----------



## tuxedo (16. Jun 2008)

In der Tat ist es so, dass viele (nicht alle, aber sehr viele) Provider direkten Zugriff auf die DB nur via localhost, sprich vom Webserver aus erlauben. Wenn der nur HTML, CGI und PHP versteht hat man in der Tat schlechte Karten. 

Ich will jetzt nicht schon wieder Werbung für meinen jPMdbc Treiber (siehe Signatur) machen, aber der kann, recht performant, über den "Umweg PHP" auf eine Datenbank, die hinter einem Webserver liegt und nur via localhost erreichbar ist, zugreifen. Zwar ist die JDBC Schnittstelle nicht zu 100% implementiert, aber für die meisten Belange reicht die Funktionalität aus (Hauptsächlich fehlt der Meta-Daten Teil der Implementierung).

- Alex


----------

