Datenbankverbindung

Status
Nicht offen für weitere Antworten.

The-Forgotten

Bekanntes Mitglied
Wie erstelle ich eine Verbindung zu einer Datenbank?
Ich hab mal ein bisschen im Internet gesucht, bin aber auf keinen grünen Ast gekommen :S

Das hab ich bis jetzt gefunden, aber ich bekomme keine Verbindung ... weiß jeamnd warum?

PS: Bin total neu in der Sache, also bitte für ... Anfänger ... erklären :)

Java:
public class DbConnect {
	
	public void init()
	{
		driver();
		db_connect();
	}
	
	public void driver()
	{
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Or any other driver
		}
		catch(Exception x){
			System.out.println( "Unable to load the driver class!" );
		}
	}
	
	public void db_connect()
	{
		try{
			 Connection dbConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
			 System.out.println("Successful Connected");
			}
			catch( SQLException x ){
				System.out.println("Couldn’t get connection!");
			}
	}
}

[/Java]
 

The-Forgotten

Bekanntes Mitglied
Sry, vergessen die Imports dazu zu packen. Ich hoffe das beantwortet die Frage ...

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


der Fehler ist in dieser Zeile:
Connection dbConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
 

Der Müde Joe

Top Contributor
>Ich hoffe das beantwortet die Frage ...

Nein. aber das zweite...

>der Fehler ist in dieser Zeile:

vielleicht nennst du diesen, nachdem du den Syste.out durch x.printStackTrace() ersetzt hast
 

The-Forgotten

Bekanntes Mitglied
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mysql
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at DbConnect.db_connect(DbConnect.java:23)
at DbConnect.init(DbConnect.java:6)
at Starter.main(Starter.java:6)
 

Der Müde Joe

Top Contributor
Was mich wieder zu Frage 1 bringt:

Ist der Treiber im Classpath?

zB
java -cp pfad/zur/jar/h2-1.1.116.jar MainClass

kannst auch hier testen;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

EDIT:
Bye the way:
Was ist das für ein Triber?
Der heisst doch:
com.mysql.jdbc.Driver
MySQL :: MySQL Connectors
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
also ich verwende folgenden Driver, welchen du bei MySQL downloaden kannst: [c]Class.forName("com.mysql.jdbc.Driver");[/c]
Deiner unterstützt wohl kein MySQL
 

The-Forgotten

Bekanntes Mitglied
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;




public class DbConnect {
	
	public void init()
	{
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
		//driver();
		//db_connect();
	}
}

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	Unhandled exception type ClassNotFoundException
	Unhandled exception type InstantiationException
	Unhandled exception type IllegalAccessException

	at DbConnect.init(DbConnect.java:12)
	at Starter.main(Starter.java:6)


Edit: Ich hab sowas noch nie mit Java gemacht, nur mit PHP(Welches den Vorteil hatte, das alles integriert war)
Muss ich extra den Treiber runterladen?
Und wo kommt er dann hin?

*keine Ahnung hab*
 
Zuletzt bearbeitet:

Der Müde Joe

Top Contributor
>Muss ich extra den Treiber runterladen?

ja. den entsprechenden JDBC --> Java Database Connector
hier:
MySQL :: MySQL Connectors

Ein Beispiel:
(ausführen mit dem driver im Classpath.
java -cp wo/der/ist/mysql-connector-java-5.1.8-bin.jar DBCon

Java:
import java.sql.Connection;
import java.sql.DriverManager;


public class DBCon {

	public static Connection getConnection() throws Exception {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		return DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabaseName",
				"username", "password");
	}

	public static void main(String... _) {
		Connection con = null;
		try {
			con = getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(con);
	}
}
 
Zuletzt bearbeitet:

The-Forgotten

Bekanntes Mitglied
Danke, danke, danke.

Ich hab mich mal für den entschieden "JDBC Driver for MySQL (Connector/J)" ich hoffe er passt?

Wie genau spreche ich den jetzt an?
 

Der Müde Joe

Top Contributor
>JDBC Driver for MySQ

passt.

>wo muss der runtergeladene Treiber hin?

In den Classpath....über Class.forName(nameDesTreibers) wird er dann geladen und DriverManager... erstellt die Connection.

Er muss in den Classpath, damit er zur laufzeit zur verfügung steht. Drum
java -cp /wo/sich/der/treiber/im/Filesystem/befindet/mysql-connector-java-5.1.8-bin.jar DBCon
 

The-Forgotten

Bekanntes Mitglied
Ich hab den mysql-connector-java-5.1.8 jetzt runtergeladen und in den ganzen Ordner in das richtige Projektverzeichnis geladen, stimmt das so?
 

faetzminator

Gesperrter Benutzer
In Eclipse musst du noch in die Project Properties -> Java Build Path -> Libraries -> Add JARs... und das Jar auswählen
 

The-Forgotten

Bekanntes Mitglied
Ich kanns erst testen, wenn ich weiß, wie ich den Treiber anspreche.

von 'Der Müde Joe' habe ich ja schon den Tipp mit Class.forName("XXX").newInstance();

Allerdings weiß ich nicht, wie ich jetzt meinen Treiber ansprechen muss, da ich nicht weiß, welche Datei aus dem Treiberordner dort angesprochen werden muss und wie genau.(Dateiname, was anderes, ect.)


Genau, mit Eclipse

Edit: Ich hab mal den Treiber eingefügt, wie von faetzminator beschrieben
 

The-Forgotten

Bekanntes Mitglied
Endlich, es geht ^^

Diver loaded
Successful connected

Juhu^^

Danke euch, für eure Hilfe^^

[Java]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;



public class DbConnect {

public void init()
{

driver();
db_connect();
}

public void driver()
{
try
{
Class.forName("com.mysql.jdbc.Driver"); //Or any other driver
System.out.println("Driver loaded");
}
catch(Exception x){
System.out.println( "Unable to load the driver class!" );
}
}

public void db_connect()
{
try{
Connection dbConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
System.out.println("Successful Connected");
}
catch( SQLException x ){
x.printStackTrace();
}
}
}
[/Java]
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben