Hallo zusammen
Ich versuche mich mit der Java DB (Derby) zu verbinden. Leider schaff ich das nicht. Ich habe zwei Klassen, welche leicht unterschiedlich aufgebaut sind, um mich mit der DB zu verbinden. Welche Klasse die Verbindung Steuert, kann ich in einem Formular über zwei Buttons auswählen. Übrigens, ich arbeite mich gerade in NetBeans ein. Über NetBeans, kann ich mich mit Java DB verbinden, nur direkt über den Code schaff ich es (noch) nicht.
Das ganze dient nur zur Übung und zum Lernen. Nun klappen beide Verbindungen nicht. Vielleicht kann mir ja jemand einen Tipp geben.
Klasse1: HelloDerby
Die Konsole gibt mir folgendes raus:
"HelloDerby.Ausführen() ist gestertet"
Bedeutet wohl, das im ersten TRY Block etwas schief läuft. Wobei keine Exeption ausgelöst wird und das Prog auch weiterläuft.
Klasse2: Derby
Die Konsole gibt mir folgendes raus:
"Der JDBC-Treiber konnte nicht geladen werden. Die Fehlermeldung lautet: org.apache.derby.jdbc.ClientDriver
Java Result: 1
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 2 Sekunden)"
Hier auch wieder der erste TRY-Block, nur das ich aus dem Prog rausgeschmissen werde.
Ich versuche mich mit der Java DB (Derby) zu verbinden. Leider schaff ich das nicht. Ich habe zwei Klassen, welche leicht unterschiedlich aufgebaut sind, um mich mit der DB zu verbinden. Welche Klasse die Verbindung Steuert, kann ich in einem Formular über zwei Buttons auswählen. Übrigens, ich arbeite mich gerade in NetBeans ein. Über NetBeans, kann ich mich mit Java DB verbinden, nur direkt über den Code schaff ich es (noch) nicht.
Das ganze dient nur zur Übung und zum Lernen. Nun klappen beide Verbindungen nicht. Vielleicht kann mir ja jemand einen Tipp geben.
Klasse1: HelloDerby
Die Konsole gibt mir folgendes raus:
"HelloDerby.Ausführen() ist gestertet"
Bedeutet wohl, das im ersten TRY Block etwas schief läuft. Wobei keine Exeption ausgelöst wird und das Prog auch weiterläuft.
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Datenbank;
/**
*
* @author Chris
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Locale;
public class HelloDerby {
// static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
static final String DRIVER = "org.apache.derby.jdbc.ClientDriver";
static final String URL = "jdbc:derby:derbydb;create=true";
static final String CREATE_TABLE = "create table hello( world varchar(100))";
static final String DROP_TABLE = "drop table hello";
static final String INSERT = "insert into hello values (Hello World)";
static final String SELECT = "select * from hello";
public static void Ausführen(){
System.out.println("HelloDerby.Ausführen() ist gestertet");
try {
Class.forName(DRIVER).newInstance();
System.out.println("der Treiber ist geladen");
System.out.println("Nun gehts um die Connection");
Connection connection = DriverManager.getConnection(URL);
try (Statement statement = connection.createStatement()) {
ResultSet resultSet;
statement.execute(CREATE_TABLE);
statement.execute(INSERT);
resultSet = statement.executeQuery(SELECT);
while(resultSet.next()) {
System.out.println(resultSet.getString(1));
}
resultSet.close();
statement.execute(DROP_TABLE);
}
} catch( ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException ex ) {
}
}
}
Klasse2: Derby
Die Konsole gibt mir folgendes raus:
"Der JDBC-Treiber konnte nicht geladen werden. Die Fehlermeldung lautet: org.apache.derby.jdbc.ClientDriver
Java Result: 1
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 2 Sekunden)"
Hier auch wieder der erste TRY-Block, nur das ich aus dem Prog rausgeschmissen werde.
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Datenbank;
/*
*
* @author Chris
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Derby {
/**
* Verbindung zur Datenbank
*/
Connection verbindung;
/**
* JDBC-Treiber-Name. Muss im Klassenpfad sein.
*/
static final String DRIVER
= "org.apache.derby.jdbc.ClientDriver";
/**
* Verbindungs-URL. Erstellt beim ersten Aufruf eine neue Datenbank.
*/
static final String URL
// = "jdbc:derby:c:/derbydbs/sampledb;create=true";
= "jdbc:derby://localhost:1527/DBTEST";
/**
* Benutzername für die Datenbank Anmeldung
*/
static final String BENUTZER= ""; //Muster Hans";
/**
* Passwort für die Datenbank Anmeldung
*/
static final String PASSWORD = ""; // "daserrätsdunie";
/**
* Verbindung zur Datenbank herstellen.
*/
public void connect() {
// Treiber laden
try {
Class.forName (DRIVER).newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex ) {
System.out.println("Der JDBC-Treiber konnte nicht " +
"geladen werden. " +
"Die Fehlermeldung lautet: " + ex.getMessage() );
System.exit(1);
}
// Verbindung herstellen
try {
verbindung = DriverManager.getConnection(URL);
} catch( SQLException ex ) {
System.out.println("Die Verbindung zur Datenbank konnte " +
"nicht hergestellt werden. " +
"Die Fehlermeldung lautet: " + ex.getMessage() );
System.exit(1);
}
}
/**
* Verbindung trennen
*/
public void disconnect() {
try {
if(verbindung != null && !verbindung.isClosed()) {
verbindung.close();
verbindung = null;
}
} catch( SQLException ex ) {
System.out.println("Die Verbindung zur Datenbank " +
"konnte nicht geschlossen werden. " +
"Die Fehlermeldung lautet: " + ex.getMessage() );
System.exit(1);
}
}
/**
* Alle Tabellennamen anzeigen
*/
public void showTables() {
String query = "select tablename from sys.systables";
String message = "Datenbankfehler. Die Fehlermeldung lautet: ";
Statement statement = null;
ResultSet resultSet = null;
try {
// Benötige Ressourcen für eine SQL-Anweisung bereitstellen
statement = verbindung.createStatement();
// Select-Anweisung ausführen
resultSet = statement.executeQuery(query);
// Alle Tabllennamen anzeigen
while(resultSet.next()) {
System.out.println(resultSet.getString(1));
}
} catch( SQLException ex ) {
System.out.println(message + ex.getMessage());
} finally {
// Alle Ressourcen wieder freigeben
if( resultSet != null ) {
try {
resultSet.close();
} catch( SQLException ex ) {
System.out.println(message + ex.getMessage());
}
}
if( statement != null ) {
try {
statement.close();
} catch( SQLException ex ) {
System.out.println(message + ex.getMessage());
}
}
}
}
/** public static void main(String[] args) {
Derby derby = new Derby();
derby.connect();
derby.showTables();
derby.disconnect();
*/
public static void Ausführen(){
Derby derby = new Derby();
derby.connect();
derby.showTables();
derby.disconnect();
}
}