Probm z nawiazaniem polaczenia do bazy

0

Nie wiem dlaczego nie chce sie polaczyc do bazy Firebird:

Mam taki kod:

String DB_USER = "sysdba";
String DB_PASSWORD = "masterkey";
String DB_CONNECTION_STRING="jdbc:firebirdsql://192.168.0.9:3050/C:/KS/APW/AP/wapteka.fdb";

try {
            Connection connRSFind = DriverManager.getConnection(DB_CONNECTION_STRING,DB_USER, DB_PASSWORD);
            System.out.println("Polaczenie nawiazane!!!");
        } catch (SQLException ex) {
            Logger.getLogger(ServletExample.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Nie udalo sie nawiazac polaczenia!!!");
        }

Uzywam netbeansa, dograłme sterownik Jaybird-2.1.6JDK_1.6 i w menadzeze polaczena do bazy nie ma problemów, ale chce wywolac polaczeni kodem no i cos mi nie idzie ;/

0

Jeszcze dopisze ze poprawiłem na :

try {           
             Class.forName("org.firebirdsql.jdbc.FBDriver");
            } catch (ClassNotFoundException ex)
            {
            Logger.getLogger(ServletExample.class.getName()).log(Level.SEVERE, null, ex);
            }

        String DB_USER = "sysdba";
        String DB_PASSWORD = "masterkey";
        String  DB_CONNECTION_STRING="jdbc:firebirdsql://localhost:3050/C:\\KS\\APW\\AP\\wapteka.fdb";
               
        try {
            Connection connRSFind = DriverManager.getConnection(DB_CONNECTION_STRING, DB_USER, DB_PASSWORD);
            System.out.println("Polaczenie nawiazane!!!");


Ale nie pomoglo ;/
0

Po analizie doszedlem do wniosku ze nie mozna zaladowac sterownika:

SEVERE: The log message is null.
java.sql.SQLException: No suitable driver found for jdbc//localhost:3050/C:\KS\APW\AP\wapteka.fdb

No i doczytalem ze trzeba zmienic zmienna srodowiskowa systemu CLASSPATH na sciezke do sterwonika w moim przypadku Firebird. No ale niestety dalej nie działa. Pomozy ;)

0

Może zarejestruj driver

Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();</b>

0

SEVERE: The log message is null.
java.sql.SQLException: No suitable driver found for jdbc//localhost:3050/C:\KS\APW\AP\wapteka.fdb
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at servlet.ServletExample.doGet(ServletExample.java:61)

0

A może w logu pojawia się coś takiego?

java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver

0

Mam jedynie:

INFO: Initializing Mojarra 2.0.2 (FCS b10) for context '/WebApplication2'
SEVERE: PWC2773: Exception loading sessions from persistent storage
java.lang.NullPointerException
        at org.jboss.weld.introspector.ForwardingAnnotated.isAnnotationPresent(ForwardingAnnotated.java:50)

no i pozniej blad o korym pisałem:

INFO: Błąd podczas ładowania sterownika: java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
SEVERE: The log message is null.
java.sql.SQLException: No suitable driver found for jdbc:firebirdsql://localhost:3050/C:\KS\APW\AP\wapteka.fdb
        at java.sql.DriverManager.getConnection(DriverManager.java:602)

Zrobiłem tak w krokach:

  • pobrałem i doinstalowałem sterownik Jaybird-2.1.6JDK_1.6 nastepnie w netbeansie ustawiłem polaczenie do bazy na tym sterwniku aby sprawdzic czy jest ok i wszystko działa.

  • dodałem zmienna srodowiskowa CLASSPATH na wartosc C:\Users\Grzesiek\Desktop\Jaybird-2.1.6JDK_1.6.jar czyli tam gdzie jest wrzucony sterwonik

No i kod w aplikacji:

try {
             try {
                  Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
                  Class.forName("org.firebirdsql.jdbc.FBDriver");
                 }
             catch (InstantiationException ex)
             {
              Logger.getLogger(ServletExample.class.getName()).log(Level.SEVERE, null, ex);
             }
             catch (IllegalAccessException ex)
             {
              Logger.getLogger(ServletExample.class.getName()).log(Level.SEVERE, null, ex);
             }
            }
        catch (ClassNotFoundException cnfe) 
            { 
            System.out.println("Błąd podczas ładowania sterownika: " + cnfe); 
            } 
        

        String DB_USER = "sysdba";
        String DB_PASSWORD = "masterkey";
        String DB_CONNECTION_STRING ="jdbc:firebirdsql://localhost:3050/C:\\KS\\APW\\AP\\wapteka.fdb";

        try {
            Connection polaczenie = DriverManager.getConnection(DB_CONNECTION_STRING, DB_PASSWORD, DB_USER);
            }
        catch (SQLException ex)
            {
            Logger.getLogger(ServletExample.class.getName()).log(Level.SEVERE, null, ex);
            }

sciezki przepisane sa z sterownika w netbeans wiec sa dobre.

Kod połączenie do bazy mam w servlecie w klasie class ServletExample extends HttpServlet w metodzie protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Moze gdzies tu popełniam blad mze na to jest wydzielona sprecjalna metoda odrebna, nie wiem robie to pierwszy raz. Klepie z 2 ksiazkami i jzu brakło mi pomysłów ;/

0

A teraz zrobiłem tak, napisałem aplikacje ktora nie robi nic za wyjatkeim podlaczanai sie do bazy.

package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Main {
    public static void main(String[] args)    
    {
        try {
            try {
                //--------------------------------------------------------------------
                Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (InstantiationException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
   
      

       String DB_USER = "sysdba";
       String DB_PASSWORD = "masterkey";
       String DB_CONNECTION_STRING ="jdbc:firebirdsql://localhost:3050/C:\\KS\\APW\\AP\\wapteka.fdb";
        try {
            Connection polaczenie = DriverManager.getConnection(DB_CONNECTION_STRING, DB_PASSWORD, DB_USER);
            //---------------------------------------------------------------------
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }

      
    }

}

No i tym razem wystepuje blad o ktorym mowiles:

2010-05-04 15:07:49 test.Main main
SEVERE: null
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

Dlaczego nie chce mi załadować tego sterownika?

0

Funkacja powinna wyglądać tak:

    public static void main(String[] args) {
        String DB_USER = "sysdba";
        String DB_PASSWORD = "masterkey";
        String DB_CONNECTION_STRING = "jdbc:firebirdsql://localhost:3050/C:\\KS\\APW\\AP\\wapteka.fdb";
        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection polaczenie = DriverManager.getConnection(DB_CONNECTION_STRING, DB_PASSWORD, DB_USER);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Rejestracja drivera JDBC", ex);
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

Jeżeli nie można zarejestrować drivera, następuje natychmiastowe przerwanie.
Jak to uruchamiasz?

Edycja
Jeżeli jest to aplikacja webowa uruchamiana na tomcat 5.5 , to dodaj sterownik(jar) do [TOMCAT_HOME]/common/lib
lub [TOMCAT_HOME]/lib jezeli to tomcat 6
Edycja - sprostowanie
Oczywiście że test.Main to nie jest aplikacja web, wcześniej wspominasz o serwletach.

0

No nie teraz to aplikacja deskopowa, pomijam teraz aplikacje weba. Wklepalem twoj kod i

2010-05-04 1512 test.Main main
SEVERE: Rejestracja drivera JDBC
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)

Odpalam, normalnie w srodowisku NetBeans czy powinienem cos konfigurowac?

0

A moze jeszcze powinienem gdzies dodac sciezke do sterownika? jakeis bblioteki? nie mam pojecia :/

0

Dobra juz mam, glupi blad poczatkujacego, nie dodałem sterownika do aplikacji ;/ Sory ze zawracam głowe ;/

0

Oczywiście że test.Main to zwykła aplikacja.

Zakładam że umiesz konfigurować projekt w Netbeans

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