MySQL Treiber aus NetBeans laden

E

Eleandro

Gast
HI Leute,

Ich sitz hier schon seit 2 Tagen an einem Problem, an dem ich nicht weiterkommen. Und zwar würde ich gerne in ein Projekt (Spiel Mühle) eine Datenbank einfügen, bin aber erst an der Stelle, um den Treiber zu benutzen, um auf die Datenbank zuzugreifen.

Den Treiber habe ich als Library bereits in NetBeans eingefügt: Unter der Menüleiste Tools, dann auf Libraries; dort gibt es ein Paket MySQL JDBC Driver. Die Library Classpath ist D:\Program Files\NetBeans 6.8\ide12\modules\ext\mysql-connector-java-5.1.6-bin.jar
Wenn ich nun meine Class starten will, dann kommt folgender Fehler:
Exception: org.apache.derby.jdbc.EmbeddedDriver

Den Quelltext, um auf den Treiber zuzugreifen, ist derselbe wie der von meinem Prof, nur in meiner Klasse wills nicht klappen:
Java:
 try {
      Class.forName( "org.apache.derby.jdbc.EmbeddedDriver");
      Connection con = DriverManager.getConnection( "jdbc:derby:lab;create=true");
Warum klappt es in der Klasse meines Profs, aber nicht in meiner, obwohl ich nur den Quelltext kopiert habe?

Die Datenbank der Spielernamen existiert noch nicht; kann man die auch via MS Access anlegen und dann drauf zugreifen? Weil wenn ich die im Programm anlegen würde, dann würde bei jedem neuen Start eine neue angelegt werden; ich will ja nur eine.

Ziel ist es, für ein Spiel eine Datenbank anzulegen, in der die Statistiken der Spieler aufgeführt und aktuallisiert werden.

Ich hoffe, ihr könnt helfen.

Gruß Eleandro
 

Meldanor

Bekanntes Mitglied
Weil der Treiber dort nicht liegt :D
Außer du hast noch eine Library eingebunden, die diesen Pfad hat. Mach doch einfach
import org.apache.
bei NetBeans , dann siehst du , welche Packages es dort gibt.

Der "Pfad" zum Treiber, den du bei NetBeans eingebunden hast, lautet:
"com.mysql.jdbc.Driver"
 
E

Eleandro

Gast
HI!

Das klappt leider auch noch nicht, da kommt dieselbe Exception mit

Java:
Class.forName( "com.mysql.jdbc.Driver");
Exception: com.mysql.jdbc.Driver

Bist du sicher, dass das der richtige Link zum Treiber ist? Oder könnte es nun sein, dass er nicht die Datenbank finden kann, die noch gar nicht existiert und so auch keine Verbindung hinbekommt? Aber da sollte es dann eigentlich eine andere Exception geben, oder?

Cool dass du mir hilfst :)

Gruß Eleandro
 
G

Gast2

Gast
Du erwähnst hier drei verschiedene Datenbanken:

MySQL, MS Access und Derby

Weißt du überhaupt was du genau möchtest? Ein Derby funktioniert nicht mit einem MySQL Treiber, und eine MySQL nicht mit einem MS Access Treiber...

Also:
1) Klarstellen welche DB du nutzen willst/musst
2) Passende Treiber lib runterladen und in den classpath deiner application aufnehmen
3) Datenbank starten (MySQL) oder Datafile erzeugen (Derby, Access)
4) Treiber über den DriverManager laden
5) Auf Datenbank zugreifen und mit arbeiten
 
Zuletzt bearbeitet von einem Moderator:
E

Eleandro

Gast
HI,

Ich glaube, man merkt langsam, dass ich in diesem Punkt nicht ganz durchblicke. Mein Prof hat, wie man im ersten Post sieht, auf den Treiber von Derby zugegriffen. Da er uns gesagt hat, dass wir diesen Quelltext für unser Projekt verwenden können, will ich natürlich auch Derby verwenden (wenns denn Derby ist).

zu 2.) Hab hier (Apache Derby 10.6.1.0 Release) den dritten Link geladen (db-derby-10.6.1.0-lib.zip [PGP] [MD5])
Ich hab es dann nach \build\classes entpackt; ist sie so die classpath aufgenommen? Wahrscheinlich nicht, weil ich habe in Seiten gelesen, das man änhliches wie dies (Windows class path:
C:\Derby\lib\derby.jar;C:\Derby\lib\derbytools.jar;C:\myPath\myDevDir
) eingeben muss.
Also set CLASSPATH = ..... Nur sagt keiner, wo ich das machen muss.
 

Meldanor

Bekanntes Mitglied
Wenn du bei NetBeans Libraries in das Projekt miteinbeziehen willst, gehe einfach auf Libraries in der Projektansicht(Standardmäßig links) und dann Rechtsklick und dann Add Jar/File. Dann wählst du die .jar Datei aus, wo der Treiber drin sein soll und dann solltest du ihn nutzen können.
Sofern es der richtige ist, keine Ahnung, hab ich nicht nachgeprüft.
 
E

Eleandro

Gast
HI,

Ich glaube ich kann einen Erfolg melden! *THX* Ich hab nun unter Libraries aus dem Verzeichnis des Profs nachgeschaut und die dortige Datei derby mit deiner Methode eingebunden. Nun kommt ein neuer Fehler, aber über den bin ich dankbar!

Exception: Table/View 'STUDENTEN' does not exist.

D.h. doch, dass es nun möglich ist, mit dem Treiber die Verbindung aufzubauen. Natürlich findet er dann nicht die Tabelle, weil ich sie noch gar nicht angelegt habe.

Darum kümmere ich mich jetzt. Meine Frage hierzu, auch wenns sich ev. blöd anhört: Wenn ich nun im Quelltext eine neue Datenbank anlege, mit einer Tabelle, dann habe sie ja erstellt und ich kann mit ihr arbeiten. Aber wenn das Programm jedes Mal neu gestartet wird, wird dann nicht ständig eine neue Datenbank samt Tabelle angelegt? Ich will die eine ja behalten.

Gruß Eleandro
 
G

Gast2

Gast
Tabellen anlegen sollte eine eigene Funktion in deinem Programm sein, vielleicht in einer Hilfsklasse. Die wird z.B: nur aufgerufen wenn das Programm mit -Ddbinit=true aufgerufen wird.

Java:
public static void main(String[] args){
  if(System.getProperty("dbinit","false").equals("true")){
    DBUtil.initializeDbTables();
  }



}
 
E

Eleandro

Gast
Hi,

Bin grade dabei, eine Datenbanktabelle zu erstellen, aber jedesmal wirft es eine seltsame Exception:

Exception: Syntax error: Encountered "(" at line 1, column 50.

Das heißt doch, dass in Zeile 1 ziemlich weit rechts eine Klammer zu viel ist. Aber ich hab da keine Klammer stehen und komme wegen diesem blöden Fehler gerade nicht weiter.

Mein bescheidenes Geschreibsel, ob zu überprüfen, ob bereits eine Tabelle existiert; ansonsten soll sie angelegt werden.

[Java]
package engine;



import java.sql.*;


public class Datenbank {

private static final String[] NAMEN = {""};
private static final int[] Spiele = {};
private static final int[] Siege = {};
private static final int[] Unentschieden = {};
private static final int[] Niederlagen = {};
private static final double[] Gewinnquote = {};

public static void main( String[] args) {

Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try
{
Class.forName( "org.apache.derby.jdbc.EmbeddedDriver");
con = DriverManager.getConnection( "jdbc:derby:lab;create=true");
tmt = con.createStatement();

{
rs = stmt.executeQuery( "SELECT tablename FROM sys.systables WHERE tablename = 'Profile'");
if ( rs.next()) {
System.out.println( "Table Profile already exists");
} else {
stmt.execute( "CREATE TABLE Profile (Name CHAR (12), Spiele INT (), Siege INT (), Unentschieden INT () Niederlagen INT (), Gewinnquote DOUBLE(), PRIMARY KEY (Name)) ");
System.out.println( "Table Profile created");
}
}

stmt.close();
con.close();
}
catch (Exception e)
{
System.out.println ("Exception: " + e.getMessage());
}
}

}
[/code]

So müsste die Überprüfung, um eine Tabelle schon da ist, ja eigentlich funktionieren, oder muss ich zuerst einmal eine Hauptdatenbank anlegen, in die ich dann die Table reinhaue?

Gruß Eleandro
 

JBuntu

Mitglied
Hi,
derby hat eine eingeschränktere SQL-Version und versteht nicht jedes beliebige SQL Format gerade wenn du DDL anwendest.

stmt.execute( "CREATE TABLE Profile (Name CHAR (12), Spiele INT (), Siege INT (), Unentschieden INT () Niederlagen INT (), Gewinnquote DOUBLE(), PRIMARY KEY (Name)) ");

besser wäre "Create Table Profile (name varchar(12), spiele integer, siege integer, unentschieden integer, niederlagen integer, gewinnqoute double, id primary key integer)"
 
Zuletzt bearbeitet:
E

Eleandro

Gast
HI,

Woran siehst du, dass ich DDL verwende? Hab jetzt gefunden was es heißt (Data Definition Language). Alle SQL-Befehle sind meines Wissens nach case insensitiv, also Groß- und Kleinschreibung sind gleichwertig. D.h., es müsste egal sein, ob ich Integer oder INTEGER schreibe.

Ganz fehlerlos läuft es noch nicht, aber anscheinend komme ich der Lösung näher:
Java:
stmt.execute( "Create Table Profile (name VARCHAR (12) , spiele INTEGER, siege INTEGER, unentschieden INTEGER, niederlagen INTEGER, gewinnquote DOUBLE, id primary key INTEGER ) ");
Ob ich nun die Typbezeichner wie Integer groß oder klein schreibe, macht keinen Unterschied, kommt jedesmal der Fehler:
Exception: Syntax error: Encountered "" at line 1, column 141.
Irgendwie nun an 141 anstatt 50 :x

Was genau passiert hier: id primary key INTEGER ? Eigentlich wollte ich ja name als Primary Key, warum baue ich dann noch eine Spalte id ein?

Gruß Eleandro
 
E

Eleandro

Gast
Hey,

eben als du noch einen Beitrag geschrieben hast, hab ich es mit der Hilfe von Wikipedia hinbekommen (hab nach DDL gesucht und da war ein Schema, mit dem ich es eingegeben habe):
Java:
 stmt.execute( "Create Table Profile (name varchar (12) PRIMARY KEY , spiele integer, siege integer, unentschieden integer, niederlagen integer, gewinnquote double) ");
So müsste nun Name der Primary Key sein. Als Meldung habe ich dann auch "Table Profile created" bekommen. :)
Was mich stutzig macht: Obwohl es funktioniert, erscheint immer wieder die Fehlermeldung: "One or more Projects were compiled with Errors". Meint NetBeans damit eine weitere Class im selben Package, die noch nen Fehler hat?

Beim 2. Ausführen des Programms ist nun ja die Tabelle bereits vorhanden und nun sollte eigentlicht die Fehlermeldung kommen: "Table Profile already exists" (s. o. Z. 31)
Stattdessen erscheint folgende Ex: Exception: Table/View 'PROFILE' already exists in Schema 'APP'. Das macht mich etwas stutzig.

Gruß Eleandro
 
G

Gast2

Gast
Deine Abfrage ob die Tabelle existiert ist nicht grade sinnvoll.

Java:
rs = stmt.executeQuery( "SELECT tablename FROM sys.systables WHERE tablename = 'Profile'");
            if ( rs.next()) {
            System.out.println( "Table Profile already exists");
            } else {
            stmt.execute( "CREATE TABLE Profile (Name CHAR (12), Spiele INT (), Siege INT (), Unentschieden INT () Niederlagen INT (), Gewinnquote DOUBLE(), PRIMARY KEY (Name)) ");
            System.out.println( "Table Profile created");
            }

Gut - was passiert wenn es die Tabelle gibt aber sie keine Datensätze enthält? Richtig dann wird trotzdem [c]CREATE TABLE[/c] ausgeführt und es rappelt eine SQLException hoch - also landest du im Block

Java:
      catch (Exception e)
      {
         System.out.println ("Exception: " + e.getMessage());
      }

Im prinzip gibt es mehrer Möglichkeiten festzustellen ob es eine Tabelle gibt, aber das sollte eigentlich nicht teil deiner Applikationlogik sein. Wie ich schon weiter oben geschriegebn habe solltest du eine Funktion defineren die dir die Datenbankstruktur anlegt und nur dann aufgerufen wird wenn das gewünscht ist, z.B. durch eine Systemproperty oder eine bestimmtest Argument das der main übergeben wird.

Obwohl es funktioniert, erscheint immer wieder die Fehlermeldung: "One or more Projects were compiled with Errors". Meint NetBeans damit eine weitere Class im selben Package, die noch nen Fehler hat?

Ja, dann hast du wohl noch in einer anderen Klasse (muss ja nicht im gleichen Package sein) ein Fehler. Das zeigt dir Netbeans doch schon im Packageexploerer an. Dei Klassen sollten rot markiert sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
C Über Classpath MongoDB Treiber einbinden und korrekte import Pfade Datenbankprogrammierung 8
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
dzim Cassandra Cluster DB und der Java-Treiber Datenbankprogrammierung 1
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
G PostgreSQL Treiber laden schlägt fehl wegen: "... passwortbasierte Authentifizierung ..." Datenbankprogrammierung 2
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
D MySQL Treiber konnte nicht geladen werden Datenbankprogrammierung 3
N Welcher Treiber ist der beste? Datenbankprogrammierung 2
V PostgreSQL JDBC Treiber fehlt Datenbankprogrammierung 6
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
G PostgreSQL jar-file läd db-treiber nicht Datenbankprogrammierung 6
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
R ODBC-Treiber sehr langsam Datenbankprogrammierung 5
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
D MySQl Treiber in .jar Datei einbinden, Bukkit Datenbankprogrammierung 2
C DB.Treiber wird nicht gefunden? Datenbankprogrammierung 5
M H2 Laden der H2-Treiber schlägt fehl Datenbankprogrammierung 2
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
E MySQL Treiber wird nicht geladen Datenbankprogrammierung 5
A mysql Treiber nich gefunden Java Editor Datenbankprogrammierung 6
C SQL Server Treiber [DBNETLIB] Datenbankprogrammierung 14
M JDBC/ODBC Treiber-Einbindung Datenbankprogrammierung 5
C Treiber laden Datenbankprogrammierung 4
padde479 Verfügbare Treiber anzeigen Datenbankprogrammierung 2
P Treiber für OracleDB Datenbankprogrammierung 5
S Benötige Hilfe mit DB Treiber Datenbankprogrammierung 4
G treiber für datenbank zugriff Datenbankprogrammierung 3
G Welchen Treiber? Datenbankprogrammierung 3
S Oracle JDBC Treiber Problem Datenbankprogrammierung 4
H Konnte den Treiber com.mysql.jdbc.Driver nicht laden. Datenbankprogrammierung 19
J MS sql Server 2005 Treiber Datenbankprogrammierung 9
R Eclipse findet JDBC Treiber nicht Datenbankprogrammierung 2
A Andere Möglichkeit als JDBC Treiber für den Datenbankzugriff Datenbankprogrammierung 3
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
G DB2 Connect, welchen treiber? Datenbankprogrammierung 4
M Treiber wird nicht gefunden Datenbankprogrammierung 5
B Laden eines JDBC Treiber. Datenbankprogrammierung 7
G wohin mit dem treiber ? mysql-connector-java-5.0.5-bin.jar Datenbankprogrammierung 12
G Verwendung neuen Treiber für JDBC-Zugriff auf OracleDB Datenbankprogrammierung 5
N mysql.jdbc treiber wird nicht gefunden Datenbankprogrammierung 2
N MySQL Treiber via JDBC in Tomcat Servlet Datenbankprogrammierung 3
J Problem mit dem JDBC Treiber Datenbankprogrammierung 5
A Datenbankzugriff per Applet - Problem beim Treiber laden Datenbankprogrammierung 6
V JDBC Treiber laden Datenbankprogrammierung 2
I Keine Treiber-Klasse! Datenbankprogrammierung 9
G MySQL Treiber Datenbankprogrammierung 6
R Servlet, kann nicht den Treiber laden Datenbankprogrammierung 4
F SocketException vom mySQL-Treiber abfangen Datenbankprogrammierung 3
F mySQL-Treiber Ausliefern mit install4j Datenbankprogrammierung 2
T Treiber laden PostgreSQL Datenbankprogrammierung 3
G Probleme mit Treiber (connector) Datenbankprogrammierung 20
märliprinz JDBC Treiber Datenbankprogrammierung 11
H mySql Connector/J Treiber wird nicht gefunden Datenbankprogrammierung 2
F Treiber nachladen oder nach Bedarf Datenbankprogrammierung 4
G JDBC2-Treiber für Interbase Datenbank? Datenbankprogrammierung 4
L Java 1.5.0_04 & Oracle 9.2.0.6: JDBC Treiber? Datenbankprogrammierung 10
R MS ACCESS freier JDBC Treiber Datenbankprogrammierung 4
G JDBC- Treiber installieren Datenbankprogrammierung 3
P Wie Treiber für IBM DB2 für JAVA installieren? Datenbankprogrammierung 15
C Problem mit Treiber? insert into Befehl geht nicht Datenbankprogrammierung 5
S jdbc treiber problem Datenbankprogrammierung 12
Z kostenloser Treiber (MySQL) für kommerziellen Einsatz? Datenbankprogrammierung 5
G JDBC-Treiber-Fehlermeldung Datenbankprogrammierung 4
H JDBC-Treiber wird nicht geladen Datenbankprogrammierung 2
8 Java-MySQL wie geht das mit dem Treiber? Datenbankprogrammierung 3
F Problem mit Oracle-JDBC-Treiber Datenbankprogrammierung 5
R Mit JAR-Datei ist MySQL-Treiber nicht auffindbar Datenbankprogrammierung 10
J Wie finde ich den Treiber? Datenbankprogrammierung 4
F Suche JDBC-Treiber-Installationsanleitung (SUSE Linux) Datenbankprogrammierung 18
S Applets und Oracle-Treiber Datenbankprogrammierung 2
2 problem mit jdbc treiber Datenbankprogrammierung 4
G JDBC Treiber für dBase Datenbank? Datenbankprogrammierung 3
M Treiber für mysql Datenbanken Datenbankprogrammierung 2
G Kein Geschenk, der JDBC-Treiber ! Datenbankprogrammierung 30
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
A SQLite jTable binding mit Netbeans Datenbankprogrammierung 11
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
S New Connection Wizard / NetBeans Datenbankprogrammierung 0
M Derby/JavaDB Kleine DB mit Tabelle erweitern - Integrität - Alter-Table - Netbeans ... Datenbankprogrammierung 5
S Dringend Netbeans Derby DB random() function Datenbankprogrammierung 6
M Ein mit Netbeans entwickeltes Programm dokumentieren Datenbankprogrammierung 5
P DatenBanken mit Netbeans erstellen Datenbankprogrammierung 17
GianaSisters MS SQL unter Netbeans OK - nach konvertieren Absturz Datenbankprogrammierung 6
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
B MSSQL und NetBeans IDE 6.8 Datenbankprogrammierung 2
E Herangehensweise Neues Projekt mit Netbeans / HSQLDB / JPA Datenbankprogrammierung 3
S Datenbank und Netbeans Datenbankprogrammierung 11
M komplettNoob-Fragen: MySQL mit NetBeans nutzen Datenbankprogrammierung 13
T Recordsets in eine JTable einlesen mit Netbeans 6.0 Datenbankprogrammierung 2
T JDBC mit Netbeans 6.0 Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben