Netbeans und JavaDB

Status
Nicht offen für weitere Antworten.

heidiweber

Aktives Mitglied
Hallo,

ich benötige in einem Netbeans-GUI-Projekt eine Datenbank. In Netbeans ist ja die JavaDB bereits standardmäßig vorhanden. Ich habe eine neue Datenbank mit Tabellen und unterschiedlichen Einträgen angelegt - war ja kein Problem.

Jetzt steht als Datenbank-String in Netbeans unter Services:
jdbc:derby://localhost:1527/testDB

Nun versuch ich eine Connection zur DB herzustellen:

Code:
Connection conn = null;

    String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    String connectionURL = "jdbc:derby://localhost:1527/testDB;create=true";
    String createString = "CREATE TABLE Employee (NAME VARCHAR(32) NOT NULL, ADDRESS VARCHAR(50) NOT NULL)";
    try {
      Class.forName(driver);
    } catch (java.lang.ClassNotFoundException e) {
      e.printStackTrace();
    }
    try {
      conn = DriverManager.getConnection(connectionURL);
      Statement stmt = conn.createStatement();
      stmt.executeUpdate(createString);

      PreparedStatement psInsert = conn.prepareStatement("insert into Employee values (?,?)");

//      psInsert.setString(1, args[0]);
//      psInsert.setString(2, args[1]);

      psInsert.executeUpdate();

      Statement stmt2 = conn.createStatement();
      ResultSet rs = stmt2.executeQuery("select * from Employee");
      int num = 0;
      while (rs.next()) {
        System.out.println(++num + ": Name: " + rs.getString(1) + "\n Address" + rs.getString(2));
      }
      rs.close();
    } catch (Exception e) {
      e.printStackTrace();
    }

Aber es kommt als Fehlermeldung:

Code:
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

Kann mir da jemand bitte weiterhelfen? Muss da noch was eingebunden werden?

Vielen Dank
Grüße
Heidi
 

heidiweber

Aktives Mitglied
Guten Taq,

habs endlich hinbekommen. Es mussten natürlich noch die verschiedenen Derby.jars eingebunden werden.

Was ich aber nicht verstehe:
Um die Datenbank nutzen zu können, muss ich in Netbeans unter Services auf den DB-String connect klicken.
Erst dann funktioniert die Verbindung.

Da dies ein Swing-GUI-Programm wird, möchte ich das Programm später weitergeben und auf anderen Rechnern nutzen. Ich habe dies bereits versucht - die Derby.jar Dateien werden mitgepackt. Aber wie, wo spreche ich die Datenbank selbst an? Muss die gestartet werden (so wie innerhalb in Netbeans - denke mal doch nicht?)

Ich habe bei mir im Projektordner in einem Unterordner die Datenbank und versuche die so anzusprechen (was eigentlich gehen sollte) - aber es kommt als Fehlermeldung:

Code:
java.sql.SQLException: Failed to start database '/DerbyDb/myDB', see the next exception for details.

So versuche ich die aufzurufen:

Code:
        String driver = "org.apache.derby.jdbc.EmbeddedDriver";
        String dbName = "/DerbyDb/myDB";
        String connectionURL = "jdbc:derby:" + dbName;
        Connection conn = null;

        try {
            Class.forName(driver);
        } catch (java.lang.ClassNotFoundException e) {
            jTextArea2.setText(e.toString());

        }

        try {
            conn = DriverManager.getConnection(connectionURL, "george", "sorosch");
            Statement stmt = conn.createStatement();

            ResultSet rst = stmt.executeQuery(query);

Ohhh - das kann doch nicht so schwer sein??
Wie muss man das machen - auch v.a. wie verpacke ich die Datenbank wenn ich die mit weitergeben möchte.
Oder geht das mit Derby nicht?

Vielen Dank
Grüße
Heidi
 

Zed

Bekanntes Mitglied
Kannst ja mal Testen ob das funktioniert,
Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HelloDerby {
    
    static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
    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 main(String[] args)  {
        
        try {
            Class.forName(DRIVER).newInstance();
            Connection connection = DriverManager.getConnection(URL);
            Statement statement = connection.createStatement();
            ResultSet resultSet = null;
            
            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);
            
            statement.close();
            
        } catch( Exception ex ) {
            ex.printStackTrace();
        }
        
    }
}

Hast du die DB mit create=true erstellt?
 

heidiweber

Aktives Mitglied
Hallo,

vielen Dank schon mal. Immerhin ein erster kleiner Schritt.

Lege ich eine Datenbank mit create=true an, die es noch nicht gibt, funktionierts:

Code:
String dbName = "/DerbyDb/habsCreated;create=true";

Dann wird im "root-Ordner" des Projekts im Unterordner "DerbyDb/" ein neuer Ordner "habsCreated" mit der Datenbank angelegt.

Die Datenbankverbindung funktioniert.

Lege ich aber eine Datenbank über Netbeans an (unter "Services") und versuche die Datenbank abzusprechen, kommt als Fehlermeldung:

Code:
Failed to start database '/DerbyDb/habsCreated', see the next exception for details.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at desktopapplication2.DesktopApplication2View.jButton3ActionPerformed(DesktopApplication2View.java:403)
        at desktopapplication2.DesktopApplication2View.access$1000(DesktopApplication2View.java:30)
        at desktopapplication2.DesktopApplication2View$6.actionPerformed(DesktopApplication2View.java:163)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6134)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5899)
        at java.awt.Container.processEvent(Container.java:2023)
        at java.awt.Component.dispatchEventImpl(Component.java:4501)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4299)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3963)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3893)
        at java.awt.Container.dispatchEventImpl(Container.java:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:284)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
debug:
BUILD SUCCESSFUL (total time: 11 seconds)

So rufe ich die auf:

Code:
String dbName = "/DerbyDb/habsCreated;create=true";

Habs auch ohne create=true probiert. Es wurde auch der Ordner "habsCreated" angelegt - sind auch Dateien/Ordner drinnen - es ist also auch der Ordner.

Was ist da falsch? Wieso kann ich die durch Netbeans angelegte Datenbank nicht ansprechen?

Legt man in Netbeans die Datenbank an, kann man einen User + Passwort vergeben. Kann man dies auch mit angeben, wenn man "ohne Netbeans" die DB anlegt?

Vielen Dank
Grüße
Heidi
 

heidiweber

Aktives Mitglied
Danke dir vielmals,

prinzipiell gehts jetzt - aber leider imemr noch nicht 100%ig so wie ich möchte - es fehlt auch Derby-Wissen.

Lese mich gerade in Derby ein - werde mich aber bestimmt nochmals melden:)

Wünsche dir noch einen schönen Tag
Grüße
Heidi
 

heidiweber

Aktives Mitglied
Hallo,

kann es sein, dass der Link von dor falsch ist? Es wird wieder auf dieses Posting weitergeleitet:)

Merci
Grüße
Heidi
 

heidiweber

Aktives Mitglied
Vielen lieben Dank Ario für "deinen" Link.

Werde ich mir auf jedenfall mal genauer anschauen:) Bin gespannt obs dann geht...

Wünsche dir noch einen schönen Abend.
Grüße
Heidi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
Juelin JavaFX Netbeans Aufruf Funktion aus Scenebuilder AWT, Swing, JavaFX & SWT 8
MiMa Netbeans Projektdatum herausfinden? AWT, Swing, JavaFX & SWT 3
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
Georges456 NetBeans am Mac leider ohne FXML AWT, Swing, JavaFX & SWT 17
S Ich bringe Code mit JavaFX unter Apache NetBeans IDE 12.6 nicht zum laufen. AWT, Swing, JavaFX & SWT 14
F Gebundene Eigenschaften bei Komponenten mit NetBeans verarbeiten AWT, Swing, JavaFX & SWT 3
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M NetBeans JFrame Grundlangen fragen AWT, Swing, JavaFX & SWT 6
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
A Flug Drone steuern "DronePosition" NetBeans AWT, Swing, JavaFX & SWT 4
D SteelSeries in Netbeans als Drag-and-Drop einbinden AWT, Swing, JavaFX & SWT 0
M NetBeans Swing GUI Builder AWT, Swing, JavaFX & SWT 2
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
Helgon Swing Mit Swing zeichnen / NetBeans GUI AWT, Swing, JavaFX & SWT 11
B Swing Filter für JTable mit Netbeans Editor AWT, Swing, JavaFX & SWT 2
S NetBeans GUI Builder - Code-Platzierung AWT, Swing, JavaFX & SWT 3
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
L Swing Fenstergröße setzen (Netbeans) AWT, Swing, JavaFX & SWT 6
T jpanel höhe netbeans.... AWT, Swing, JavaFX & SWT 5
B Netbeans Swing/AWT Editor editierbar? AWT, Swing, JavaFX & SWT 5
B Look And Feel ändern (Netbeans) AWT, Swing, JavaFX & SWT 18
T JButtons indexiert unter NetBeans anlegen AWT, Swing, JavaFX & SWT 7
I jList und Netbeans AWT, Swing, JavaFX & SWT 4
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
Binary.Coder Netbeans GUI zu Eclipse (schon gegooglet und einiges ausprobiert). AWT, Swing, JavaFX & SWT 4
F Netbeans Gui in BlueJ Projekt AWT, Swing, JavaFX & SWT 9
D Netbeans GUI-Builder Darstellungsprobleme AWT, Swing, JavaFX & SWT 2
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
S auf einem mit Netbeans (GUI) erstellten JPanel (eines JFrames) zeichnen? AWT, Swing, JavaFX & SWT 7
S Java3D in ein JPanel integrieren mit Netbeans 6.8 AWT, Swing, JavaFX & SWT 4
V [SUCHE]GUI Programmier Tutorial[Netbeans] AWT, Swing, JavaFX & SWT 8
U Netbeans GUI nach Eclipse AWT, Swing, JavaFX & SWT 7
S GUI von Sourcecode in Netbeans AWT, Swing, JavaFX & SWT 3
S NetBeans && multiple Fensteroeffnung AWT, Swing, JavaFX & SWT 3
R AWT [Anfänger] Radio Buttons NetBeans 6.7.1 AWT, Swing, JavaFX & SWT 2
H Swing Netbeans Panel einbinden AWT, Swing, JavaFX & SWT 5
C NetBeans Gui-Inhalt ändern AWT, Swing, JavaFX & SWT 4
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
L Animierter Splash-Screen (mit NetBeans 6.1 z.B.) AWT, Swing, JavaFX & SWT 2
H Netbeans-Anwendung schliessen AWT, Swing, JavaFX & SWT 8
O Bindings, dynamische Verbindung (Vorbau mit Netbeans) AWT, Swing, JavaFX & SWT 10
G paintComponent() Methode für JPanel in NetBeans überschreibe AWT, Swing, JavaFX & SWT 2
D Problem mit Netbeans und repaint() AWT, Swing, JavaFX & SWT 5
J Auslösung von Aktionen über Tastatur (Netbeans) AWT, Swing, JavaFX & SWT 23
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
W netbeans projekt in Eclipse importieren -gui teil geht nicht AWT, Swing, JavaFX & SWT 5
loadbrain Icon für JFrame mit Netbeans AWT, Swing, JavaFX & SWT 3
L JTable nach Buttonklick auslesen [NetBeans] AWT, Swing, JavaFX & SWT 4
L NetBeans will ne Klammer ich weiß aber nicht wohin AWT, Swing, JavaFX & SWT 7
M Button und Exception mit NetBeans AWT, Swing, JavaFX & SWT 3
M Einstellung des Projekt-Verzeichnis in NetBeans AWT, Swing, JavaFX & SWT 4
P Fehler beim Verwenden von swt.jar mit NetBeans AWT, Swing, JavaFX & SWT 2
R NetBeans - JFrame und JPanel AWT, Swing, JavaFX & SWT 3
H AbsoluteLayout nicht nur unter Netbeans AWT, Swing, JavaFX & SWT 5
A Applikation mit Netbeans-Design AWT, Swing, JavaFX & SWT 4
F Swing mit NetBeans AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben