# SQL-Verbinden



## nitram0598 (4. Apr 2012)

Hallo Leute,
ich wollte fragen ob jemand erklären kann wie man mit einer sql-db verbinden kann, hab schon vieles gelesen aber hab ich net verstanden, größtenteils waren diese ergebnisse auch fehlerhaft


mfg, MARTIN


----------



## Gast2 (4. Apr 2012)

welche "sql-db" hast du denn?


----------



## nitram0598 (4. Apr 2012)

MySQL


----------



## Gast2 (4. Apr 2012)

SQL mit Java


----------



## Marcinek (4. Apr 2012)

http://www.java-forum.org/datenbankprogrammierung/134339-sql-connection.html

Du bist nicht der erste, der das macht:

https://www.google.com/search?q=java+datenbank+verbinden


----------



## nillehammer (4. Apr 2012)

Alle Datenbankmanagementsysteme (DBMS oder kurz einfach "Datenbanken") bieten Möglichkeiten an, über eine Programmierschnittstelle SQL-Queries abzusetzen. Die Technologie, die den Zugriff von Java aus ermöglicht, heißt JDBC (Java Database Connectivity).

Geh also auf die Internetseite des Herstellers Deiner Datenbank und lad Dir dort den passenden JDBC-Treiber herunter. Meist gibt es dort auch gleich die Doku, wie man den in sein Programm einbindet und wie man darüber Connections herstellt. Ansonsten google.


----------



## nitram0598 (4. Apr 2012)

ich habe hier was spannendes gefunden, weis aber net wie ich das für mysql umschreiben muss

Datenbankverbindung (Java) ? Byte-Welt Wiki

Sorry; hab noch weiter gelesen; da steht auch für mysql
[EDIT]
hiermit geht es:

```
//laden der Treiberklasse
Class.forName("com.mysql.jdbc.Driver");
//zurückgeben der neuen Verbindung
Connection con = DriverManager.getConnection("jdbc:mysql://Host:Port/Datenbank","Benutzer","Passwort");
```

jedoch wie kann ich jetz insert into... und so machen?[/EDIT]


----------



## nillehammer (4. Apr 2012)

> jedoch wie kann ich jetz insert into... und so machen?


Auf der Connection erzeugst Du Dir Statementobjekte. Auf diesen rufst Du execute oder executeUpdate auf. Du bekommst ResultSets zurück, über Die Du iterieren kannst. Das alles lässt sich mittels Forumsposts aber nicht erschöpfend vermitteln. Ich empfehle deshalb das Java-Tutorial: Trail: JDBC(TM) Database Access (The Java™ Tutorials)


----------



## nitram0598 (4. Apr 2012)

weis ich nach tut wie ich mit db connecte und wie ich db änder?

hab nämlich jetzt keine lust das tut zu gucken xD


----------



## Marcinek (4. Apr 2012)

nitram0598 hat gesagt.:


> weis ich nach tut wie ich mit db connecte und wie ich db änder?
> 
> hab nämlich jetzt keine lust das tut zu gucken xD



Hoffentlich postet nach so einer Antwort hier niemand mehr etwas. Ganz ehrlich das wird doch nie was, wie du dich hier anstellst. :autsch::autsch::autsch::autsch:


----------



## nitram0598 (4. Apr 2012)

ja, ich habe schon gelesen, und wollte noch fragen, es kam jetzt das raus:


```
public void connection() throws SQLException {
        Connection con = DriverManager.getConnection(
                         "jdbc:myDriver:myDatabase",
                         "root",
                         "usbw");

    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
    
    while (rs.next()) {
        int x = rs.getInt("a");
        String s = rs.getString("b");
        float f = rs.getFloat("c");
    }    
    }
```

was muss ich bei: 
	
	
	
	





```
"jdbc:myDriver:myDatabase",
```
hinschreiben?


----------



## SlaterB (4. Apr 2012)

dass 'myDriver' 'mysql' sein muss hattest du eigentlich schon selber festgestellt..

für den Rest kann man allein in Suchmaschinen mit "getConnection("jdbc:mysql:"
Beispiele genug erhalten


----------



## nitram0598 (4. Apr 2012)

ok, danke onkel


----------



## pawlo (4. Apr 2012)

Hallo Martin,

habe das gleiche Problem mit der mysql-db Verbindung und wusste nicht was ich bei getConnection("jdbc:mysql:   hinscheibe.
Vielleicht  kannst du mir dein Quellcode posten wie ich die Verbindung am schnellsten herstellen kann.

mfg, Pawel


----------



## nitram0598 (4. Apr 2012)

der code ist nun:


```
public void connection() throws SQLException {
        Connection con = DriverManager.getConnection(
                         "jdbc:myDriver:myDatabase",
                         "username",
                         "passwort");
 
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
    
    while (rs.next()) {
        int x = rs.getInt("a");
        String s = rs.getString("b");
        float f = rs.getFloat("c");
    }    
    }
```


----------



## pawlo (4. Apr 2012)

aha, super danke, läuft bei mir aber trotzdem nicht.
muss ich bei  jdbc:myDriver:myDatabase  vielleicht den Namen des Treibers angeben?


----------



## SlaterB (4. Apr 2012)

seltsames Vorgehen, wo doch jedes in Sekunden zu findendes Tutorial, etwa
MySQL and Java JDBC - Tutorial
, exakte Angaben wie z.B.



> [.. in der Datenbank: ]
> create database feedback;
> 
> [.. im Java-Code: ]
> DriverManager.getConnection("jdbc:mysql://localhost/feedback?[..]");



enthält..


----------



## pawlo (4. Apr 2012)

ok danke, werde mich jetzt schlau machen.


----------



## ARadauer (4. Apr 2012)

nitram0598 hat gesagt.:


> weis ich nach tut wie ich mit db connecte und wie ich db änder?
> 
> hab nämlich jetzt keine lust das tut zu gucken xD



:autsch: Geil wenigstens ehrlich... Thema für das es 1000 Tuturials nachfragen mit der Begründung fauls zu sein.... :lol:


----------



## pawlo (4. Apr 2012)

irgendwie liegt es an meinem treiber?? habe    mysql-connector-java-5.1.19-bin.jar  runtergeladen und in die entwicklungsumgebung angebunden kriege aber folgende fehlermeldung:


```
Exception in thread "main" java.lang.ClassNotFoundException: mysql-connector-java-5.1.19-bin.jar
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lan
```

hat jm Ahnung was ich noch falsch gemacht habe?


----------



## XHelp (4. Apr 2012)

Du musst ja nicht die jar laden, sondern eine Klasse daraus.


----------



## picco777 (4. Apr 2012)

Ja aber wie kriege ich eine Klasse draus.
Dachte es reicht wenn die jar im ordner von Tomcat liegt und der classpath geändert wird.


----------



## XHelp (4. Apr 2012)

Es wurden doch hier im Thread Links auf Tutorials und Google gepostet - einfach mal lesen


----------



## Marcinek (4. Apr 2012)

Steht bereits weiter oben im Thread, was man damit macht.

Es reicht aus den Treiber zu laden.


----------



## nitram0598 (8. Apr 2012)

ok, ich habe jetzt denke ich alles richtig gemacht, nun passiet aber nix, hier ist mein code:

```
public static void main(String[] args) throws SQLException {
        Connection con = DriverManager.getConnection(
                         "jdbc:mysql://localhost:3307/test",
                         "root",
                         "usbw");

    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM konto WHERE Name='Admin'");
    
    while (rs.next()) {
        String name = rs.getString("Name");
        int pin = rs.getInt("Pin");
        int score = rs.getInt("Score");
        
        System.out.print(name);
        System.out.print(pin);
        System.out.print(score);
    }
    }
```
und es tritt folgender fehler auf:
[WR]
	
	
	
	





```
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3307/test
	at java.sql.DriverManager.getConnection(DriverManager.java:604)
	at java.sql.DriverManager.getConnection(DriverManager.java:221)
	at javaapplication3.JavaApplication3.main(JavaApplication3.java:19)
Java Result: 1
```
[/WR]


----------



## Camino (8. Apr 2012)

Hmm, was könnte das wohl heissen: 
	
	
	
	





```
No suitable driver found for jdbc:mysql:
```
Dir fehlt wohl irgendwie der richtige Treiber für die Datenbank.


----------



## nitram0598 (8. Apr 2012)

jo, das habe ich mir auch gedacht.
ich habe eine mysql db, aber welchen treiber muss ich installieren? kannst du einen link senden?


----------



## Camino (8. Apr 2012)

Hattest du nicht weiter oben schon was von einem Treiber geschrieben?

```
Class.forName("com.mysql.jdbc.Driver");
```
Bedeutet das, du hast den Treiber schon, musst ihn aber nur noch in dein Projekt einbinden? Wie sieht denn dein Projekt aus und wo ist der Treiber zur Zeit? Mit welcher IDE programmierst du?


----------



## nitram0598 (8. Apr 2012)

ich programmiere mit netbeans, weil man dort sehr leicht objektorientierung proggen kann, naja, und, wo mus der treiber und wie und hä?


----------



## Camino (8. Apr 2012)

"Proggen"? Huuuaaa, ein schreckliches Wort... 
Na, was hast du denn mit dem Treiber bisher so angestellt? Wie gesagt, du musst den natürlich auch noch deinem Programm zur Verfügung stellen, also richtig einbinden, damit das Programm darauf zugreifen kann. Ansonsten kommt halt so eine Fehlermeldung.
Ich z.B. arbeite mit Eclipse und hab dort den Treiber für die PostgreSQL-Datenbank (eine jar-Datei) dem Build-Path hinzugefügt.


----------



## nitram0598 (8. Apr 2012)

ich bin mir net sicher ob ich den treiber überhaupt habe^^


----------



## Camino (8. Apr 2012)

Tja, das solltest du aber wissen...

Schau mal hier:
SQL mit Java


----------



## nitram0598 (8. Apr 2012)

ok?
könntest du das mal erklären?


----------



## Camino (8. Apr 2012)

Was denn erklären? Dass du dir den Treiber (Connector/J) von dem angegebenen Link runterladen und in dein Programm einbinden musst? Stichworte: Classpath, Buildpath...



> MySQL-JDBC-Type-4-Treiber (z.B. 'mysql-connector-java-5.1.16-bin.jar' aus 'mysql-connector-java-5.1.16.zip') downloaden von: MySQL :: The world's most popular open source database.



Ich kenn mich ja mit Netbeans nicht so aus, dürfte aber ähnlich sein, wie bei Eclipse: einen Ordner lib in deinem Projekt anlegen, die jar-Datei mit dem Treiber in diesen Ordner rein, in Netbeans musst du dann den Treiber noch deinem Programm hinzufügen, also dem Buildpath z.B.


----------



## nitram0598 (8. Apr 2012)

ok, danke, nur noch eine frage, wie soll ich es dem buildpath hinzufügen, kanst du das erklären?


----------



## XHelp (8. Apr 2012)

nitram0598 hat gesagt.:


> kanst du das erklären?


Der erste Treffer bei google: NetBeans JDBC MySQL Tutorial | eHow.com :bahnhof:


----------

