private void setDBSystemDir() {
// Hier wird das Systemverzeichnis für die Datenbank angegeben: /.addressbook/
String userHomeDir = System.getProperty("user.home", ".");
String systemDir = userHomeDir + "/.addressbook";
// Festlegen des Systemverzeichnisses für die Datenbank
System.setProperty("derby.system.home", systemDir);
}
Connection dbConnection = null;
String strUrl = "jdbc:derby:DefaultAddressBook;user=dbuser;password=dbuserpwd";
try {
dbConnection = DriverManager.getConnection(strUrl);
} catch (SQLException sqle) {
sqle.printStackTrace();
}
public class DatabaseConnection {
static String host = "IP";
static String user = "username";
static String password = "passwd";
static String port = "port";
static String dataBase = "dbName";
public static Connection getConnection() {
Properties connectionProps = new Properties();
connectionProps.put("user", user);
connectionProps.put("password", password);
String url = "jdbc:mysql://" + host + "/" + dataBase;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, connectionProps);
return con;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Nur halt dann für deine Datenbank...
jdbc:<datenbankanbieter>:<port>://<host>/<datenbank>
When you compile, debug, and run the application within the IDE, the IDE will be able to find the needed derby.jar file.
Naja ich will die Anwendung ja auch außerhalb der IDE laufen lassen, sonst bräuchte ich auch keine embedded Datenbank.....!??
Ich rate Dir eine binary-Distribution von Derby (hier) zu laden. Darin sind dann auch die javaDocs enthalten.
Das ist eindeutig eine Frage des ClassPath beim Ausführen von Java-Programmen. Einige IDE's finden den Treiber automatisch. Du solltest aber wissen, wie man das in NetBeans/Eclipse für Dein Programm einstellt. Wenn Du Dein Programm als JAR packen möchtest, musst Du ausserdem wissen, wie man den Classpath in der Manifest-Datei einstellt.
Ja da hast du Recht, das würde ich gerne wissen wollen!
Running the Application Outside of the IDE
To run the application outside of the IDE:
Start Java DB from outside of the IDE. See Getting Started with Derby
Note: You can also start Java DB from inside the IDE, but the server will be stopped when you exit the IDE.
Bleiben wir mal ganz konkret bei diesem Beispiel:
http://netbeans.org/kb/docs/java/gui...ml#starting-db
Jetzt müssten wir nur noch konzentriert auf folgenden Ausschnitt schauen:
Und genau bei dem Link zu den Derby Infos komm ich nicht weiter, weil ich nicht weiß, was ich davon jetzt brauche und wie ich das in das gegebene Programm einbaue und anwende! Genau hier müsste Hilfe ansetzen!!
Eigentlich ganz einfach - ich weiß nicht, warum das niemand erzählen kann... :-D
Danke
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Derby {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:derby:Sample;create=true");
DatabaseMetaData dmd = conn.getMetaData();
//ResultSet res = dmd.getTables(null, null, null, null);
ResultSet res = dmd.getTables(null, null, null,null);
System.out.println("List of tables: ");
while (res.next()) {
System.out.println(" CAT:\"" + res.getString("TABLE_CAT")
+ "\"" + ", SCHEM:\"" + res.getString("TABLE_SCHEM")
+ "\"" + ", NAME:\"" + res.getString("TABLE_NAME")
+ "\"" + ", Type:\"" + res.getString("TABLE_TYPE")
+ "\"" + ", " + res.getString("REMARKS"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Du solltest Dir, sagte ich schon, Derby herunterladen. Das ergibt, wenn ausgepackt. ein Verzeichnis.
Aus dem Lib-Verzeichnis nutzt Du die derby.jar und baust in Deinem Programm eine Verbindung zu Deiner Datenbank (jdbc:derby:<dbName>;create=true)auf.
Bleiben wir mal ganz konkret bei diesem Beispiel:
http://netbeans.org/kb/docs/java/gui...ml#starting-db
Jetzt müssten wir nur noch konzentriert auf folgenden Ausschnitt schauen:
Und genau bei dem Link zu den Derby Infos komm ich nicht weiter, weil ich nicht weiß, was ich davon jetzt brauche und wie ich das in das gegebene Programm einbaue und anwende! Genau hier müsste Hilfe ansetzen!!
Eigentlich ganz einfach - ich weiß nicht, warum das niemand erzählen kann... :-D
Danke
java.sql.SQLException: No suitable driver found for jdbc:derby:Datenbank
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at Derby.main(Derby.java:13)
jdbc:derby:Sample;create=true
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JavaApplication5 {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:derby:Sample;create=true");
DatabaseMetaData dmd = conn.getMetaData();
//ResultSet res = dmd.getTables(null, null, null, null);
ResultSet res = dmd.getTables(null, null, null,null);
System.out.println("List of tables: ");
while (res.next()) {
System.out.println(" CAT:\"" + res.getString("TABLE_CAT")
+ "\"" + ", SCHEM:\"" + res.getString("TABLE_SCHEM")
+ "\"" + ", NAME:\"" + res.getString("TABLE_NAME")
+ "\"" + ", Type:\"" + res.getString("TABLE_TYPE")
+ "\"" + ", " + res.getString("REMARKS"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); - oder mit "...ClientDriver"
Connection conn = DriverManager.getConnection("jdbc:derby:Sample;create=true");
/*
* CarsApp.java
*/
package carsapp;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;
import java.sql.*;
/**
* The main class of the application.
*/
public class CarsApp extends SingleFrameApplication {
/**
* At startup create and show the main frame of the application.
*/
@Override protected void startup() {
show(new CarsView(this));
}
/**
* This method is to initialize the specified window by injecting resources.
* Windows shown in our application come fully initialized from the GUI
* builder, so this additional configuration is not needed.
*/
@Override protected void configureWindow(java.awt.Window root) {
}
/**
* A convenient static getter for the application instance.
* @return the instance of CarsApp
*/
public static CarsApp getApplication() {
return Application.getInstance(CarsApp.class);
}
/**
* Main method launching the application.
*/
public static void main(String[] args) {
try
{Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection verbindung = DriverManager.getConnection(
"jdbc:derby://localhost:1527/car_database",
"nbuser", "nbuser");
verbindung.close();
}
catch (Exception ex)
{ex.printStackTrace();
}
launch(CarsApp.class, args);
}
}