Classpath Mysql EclipseFehler?

kill_dmp

Aktives Mitglied
huhu habe an euch eine oder auch mehr fragen ^^

ich nutze Eclipse und bin grade meine mysql datenbank am eirichten
mein datenbank zimlich einfach aufgebaut (glaube ich mal )
die datenbank heist Java und hat eine tabbelle mit dem namen datenbankTest

jetzt habe ich mir viele tutorials angeguckt um erst mal die daten auszulesen
und hier beginnt mein probelm
Java:
package Versuch1;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DatenBankCon {
	public static void main(String[] args) {
	
		Connection conn = null;
		try{
			Class.forName("com.mysql.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://[COLOR="Red"]178.254.XX.XXX[/COLOR]/java","[COLOR="Red"]Loginname[/COLOR]","[COLOR="Red"]Passwort[/COLOR]");
			Statement sqlState = conn.createStatement();
			String selectStuff = "Select monsterID from DatenbankTest";
			ResultSet rows = sqlState.executeQuery (selectStuff);	
			while (rows.next()) {
				System.out.println(rows.getString("monsterID"));
				
			}
		}
		catch(SQLException ex){
			System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
		}
		catch (ClassNotFoundException e) {
		e.printStackTrace();
		}
	}
}
so solte der code nach mehren tut´s gehen
doch sagt eclipse
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	Type mismatch: cannot convert from java.sql.Statement to java.beans.Statement
	The method executeQuery(String) is undefined for the type Statement

	at Versuch1.DatenBankCon.main(DatenBankCon.java:17)
worauf ich zeile 17 und 19 geändert habe nach dem wünschen von eclipse

Java:
package Versuch1;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DatenBankCon {
	public static void main(String[] args) {
	
		Connection conn = null;
		try{
			Class.forName("com.mysql.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://[COLOR="Red"]178.254.XX.XXX[/COLOR]/java","[COLOR="Red"]Loginname[/COLOR]","[COLOR="Red"]Passwort[/COLOR]");
			Statement sqlState = (Statement) conn.createStatement();
			String selectStuff = "Select monsterID from DatenbankTest";
			ResultSet rows = ((java.sql.Statement) sqlState).executeQuery (selectStuff);	
			while (rows.next()) {
				System.out.println(rows.getString("monsterID"));
				
			}
		}
		catch(SQLException ex){
			System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
		}
		catch (ClassNotFoundException e) {
		e.printStackTrace();
		}
	}
}
jetzt wird mir nicht mehr in zeile 17 und 19 rot angezeitgt aber es geht noch immer nicht
jetzt bekomme ich das
Code:
java.lang.ClassNotFoundException: com.mysql.Driver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at Versuch1.DatenBankCon.main(DatenBankCon.java:15)

und das prob habe ich mit allen tutorials die ich bis jetzt gemacht habe

von Prinzip will ich nur daten auslesen können und später eintragen nach reienfolge die ich in myadmin gemacht habe.
 
Das import statement ist falsch statt import java.beans.Statement; schreibst du import java.sql.Statement

ClassNotFoundException: com.mysql.Driver... tja da bist du schätze ich der 1000 der das fragt. der mysql treiber muss in den classpath, such mal in google
 
also ich habe jetzt noch mal was geändert


Java:
package Versuch1;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DatenBankCon {
    public static void main(String[] args) {
   
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://178.254.xx.xxx:3306/java","login","passwort");
            Statement sqlState = conn.createStatement();
            String selectStuff = "Select monsterID from DatenbankTest";
            ResultSet rows = sqlState.executeQuery (selectStuff);  
            while (rows.next()) {
                System.out.println(rows.getString("monsterID"));
               
            }
        }
        catch(SQLException ex){
            System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
        }
        catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
    }
}
Code:
fehlerCommunications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.0

scheinbar geht es jetzt aber auch wieder nicht ka was jetzt los ist
 
Zuletzt bearbeitet:
ich nutze meinen eigenen root server da ich aber ein totaler anfänger bin muss ich erst mal ein tutorial finden wie ich mein mysql richtig nutze so das ich zugriff habe.
habe alles so installiert wie die voreinstellungen waren
 
so melde mich wieder zurück nach 2 tagen intensiv krashkurs mysql, server, ubunto und einen experten
kann ich sagen das es nicht an meinen server liegt das ich keine verbindung habe

also was kann eclipse blocken oder java oder was verhindert das ich an meine DB nicht komme

und einmal ne blöde frage geht der code überhaupt den nich geschrieben habe ?
Java:
package Versuch1;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DatenBankCon {
    public static void main(String[] args) {
   
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://178.254.xx.xxx:3306/DimeCity","login","pw");
            Statement sqlState = conn.createStatement();
            String selectStuff = "Select* from 'DatenbankTest' WHERE 1";
            ResultSet rows = sqlState.executeQuery (selectStuff);  
            while (rows.next()) {
                System.out.println(rows.getString("monsterID"));
               
            }
        }
        catch(SQLException ex){
            System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
        }
        catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
    }
}
 
Zuletzt bearbeitet:
Kommst du von der mysql Konsole aus in die Datenbank ? Und auch mit dem User ? Oder nur als root ?
Nicht das du vergessen hast die "grants" zu vergeben.
 
so habe mir jetzt mal XAMPP auf den pc geschmissen
und habe versucht mit den code auf die db zu kommen habe den gleichen fehler

und ja ich mache alles über root
die benutzer habe ich noch nicht eingestellt des wegen leuft noch alles über den root

meine vermutung ist das iwas nicht mit den code geht oder ich was falsch mache ^^
Java:
package Versuch1;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DatenBankCon {
    public static void main(String[] args) {
   
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java","root","");
            Statement sqlState = conn.createStatement();
            String selectStuff = "Select* FROM 'DatenbankTest' WHERE 1";
            ResultSet rows = sqlState.executeQuery (selectStuff);  
            while (rows.next()) {
                System.out.println(rows.getString("monsterID"));
               
            }
        }
        catch(SQLException ex){
            System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
        }
        catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
    }
}
Code:
fehlerCommunications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.0
 
Zuletzt bearbeitet:
- Versuchs mit "jdbc:mysql://127.0.0.1:3306/Java".
- MySQL muss zu dem Zeitpunkt gestartet sein. Das ist zum Beispiel der Fall, wenn du über PHPMyAdmin auf die DB zugreifen kannst.
- Btw. "Select* FROM 'DatenbankTest' WHERE 1" kann nicht funktionieren. Da fehlt ein Leerzeichen: "Select * FROM 'DatenbankTest' WHERE 1" ... Dann ist noch fraglich, ob "WHERE 1" überhaupt eine gültige Schreibweise ist.

Zum allgemeinen Verständis:
-> Deine Datenbank heißt "Java" (Groß- und Kleinschreibung sind korrekt)
-> Dein User ist "root" mit einem leeren Passwort
-> Die Datenbank befindet sich auf dem selben Rechner, wo du das Java-Program ausführst
 
eine kurtze zusammenfassung

ich nutze den code aktuell
Java:
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
 
 
public class DatenBankCon {
    public static void main(String[] args) {
   
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Java","root","");
            Statement sqlState = conn.createStatement();
            String selectStuff = "SELECT * FROM 'DatenbankTest'";
            ResultSet rows = sqlState.executeQuery (selectStuff);  
            while (rows.next()) {
                System.out.println(rows.getString("monsterID"));
               
            }
        }
        catch(SQLException ex){
            System.out.println("fehler"+ ex.getMessage()+ex.getErrorCode());
        }
        catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
    }
}
und bekomme die meldung
Code:
fehlerYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DatenbankTest'' at line 11064

zum aktuellen zeitpunkt versuche ich erst mal auf die DB von meinen eingenen rechner zu kommen bevor ich mit meinen externen rootserver anfange

die probleme die ich vorher hatte habe ich lösen können da mit das ich eclipse neu installirt habe
scheinbar war mein eclipse kaputt

ich habe bis her nur in den classpath den mysqltreiber rein geschoben und das wars
 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DatenbankTest'' at line 11064

Hey versuche mal deinen SQL String im phpmyadmin auszuführen. Da kann man irgendwo Abfragen eingeben...
Ich vermute dort wird es auch nicht gehen und tippe auf die tollen Hochkommata ' ' Zeichen. Ich meine da kommen diese Dinger hin `` oder ´´.
 

Neue Themen


Zurück
Oben