[netbeans][derby] problem z połączeniem z bazą

0

Używam NetBeans 6.1 i próbowałem się połączyć z wbudowaną bazą danych DB posługując się driverem derby.

try
           {
               String userName = "root";
               String password = "111111";
               String url = "jdbc:derby://localhost:1527/gregor";
               try{
                  Class.forName ("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
               }catch(Exception ex) {
                        ex.printStackTrace();
               }   
               conn = DriverManager.getConnection (url, userName, password);
               System.out.println ("połączenie ustanowione");
                            
             
           }
            catch (SQLException sqle) {
                sqle.printStackTrace(); 
           {

ale wywala się wszystko przy Class.forName ("org.apache.derby.jdbc.EmbeddedDriver").newInstance();

oto część błędów jakie się pokazują:

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)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276

Dodam ,że cała baza ładnie jest widoczna w Services w Netbeans i tam łączy się za pomocą derby bez problemu.
Czy to nie jakieś problemy z zabezpieczeniem dostępu ?
Ma ktoś z Was podobne doświadczenia?

0

A czy sterownik do bazy org.apache.derby.jdbc.EmbeddedDriver został dodany do classpath?

0

"You also need to install a driver on your machine. If you installed NetBeans with the Sun Application Server, then you have the driver that you need."

Czy muszę w takim przypadku dodawac sterownik do classpath?

0

Nie wiem jak to jest w NetBeans ale powinieneś mieć coś w rodzaju takiego package explorera a w nim biblioteki projektu. Zobacz czy jest "Referenced libraries" a w nim jakiś plik jar z klasami sterownika. Jak nie ma to powinna być we właściwościach projektu możliwość dodawania zewnętrznych bibliotek.

0

Dołączyłem plik derby.jar do bibliotek projektu i przestał pojawiać się błąd związany z :

Class.forName ("org.apache.derby.jdbc.EmbeddedDriver").newInstance();

ale nadal występuje błąd:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/robboh_gregor
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at desktopapplication1.KonektorDBJava.<init>(KonektorDBJava.java:24)
        ...
0

Ok. Dokonałem kilku zmian:
zmieniłem wpis

Class.forName ("org.apache.derby.jdbc.EmbeddedDriver");

na

Class.forName ("org.apache.derby.jdbc.ClientDriver");

no i dodałem bibliotekę o nazwie ClientDriver zawierającą plik derbyclient.jar
No i poszło!
Ale wyszło inne "ale":

Wystapil blad bazy danych: java.sql.SQLSyntaxErrorException: Schemat 'ROOT' nie istnieje

What is it?

0

Najwyraźniej masz błędne polecenie SQL. Może byś zamieścił polecenie SQL poprzedzające ten wyjątek.

0

Pytanie jest banalne i ma postać:
SELECT nazwa FROM marka

No i błąd opisywany powyżej wskutek zabiegów na dołączonym sterowniku zamieniła się na

Wystapil blad zapytania  : java.sql.SQLSyntaxErrorException: Tabela/widok 'MARKA' nie istnieje.

Niby proste - brak tabeli w bazie gdyby nie to, że tabela "marka" jest bo ją widzę pod managerem IDE
kod:

 String userName = "root";
 String password = "111111";
 String url = "jdbc:derby://localhost:1527/gregor";
              
  Class.forName ("org.apache.derby.jdbc.ClientDriver");
  try{
     conn = DriverManager.getConnection (url, userName, password);
  }catch (Exception er){
             System.out.println("Błąd DriverManagera " + er);
  }
 

też się nie wysypuje.

Już głupi jestem bo wygląda to tak, że może istnieć gdzieś inna baza gregor bez tabeli "marka"

0

aby nie powielać tematów mam identyczny problem , uczę się o bazach w javie i nie mogę się połączyć, wyskakuje drugi komunikat

 public static void main(String args[]) {
        Connection c = null;
        try {
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               //ładowanie sterownika - most JDBC-ODBC
                      JOptionPane.showMessageDialog(null, "sterowik", "Rezultat", 1);     
                       return;
            }
                
          try {
             c = DriverManager.getConnection ("jdbc:derby://localhost:1527/nauka","nauka","nauka"); //
          }      
          catch (Exception e) {
              JOptionPane.showMessageDialog(null, "Blad polaczenia", "Rezultat", 1);
          }        } catch (Exception e) {
     
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
        
    }
    

1 użytkowników online, w tym zalogowanych: 0, gości: 1