Sonntag, 17. Dezember 2006

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

Java stellt mit der JDBC-Bridge (Java Database Connectivity) eine einheitliche Schnittstelle zu Datenbanken bereit. Für ein Projekt, muss ich eine Verbindung zu einem MS-SQL Server 2005 herstellen. Doch leider brach die Verbindungversuch zur Datenbank mit einer java.lang.ClassNotFoundException ab.

Problem

Den Javacode, findet man häufig so, oder ähnlich im Netz:

Download Code!

  1.  
  2. try {
  3.     Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
  4.     con = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;databaseName=test;user=test;password=test;");
  5. } catch (Exception e){
  6.     e.printStackTrace();
  7. }
  8.  

Doch leider bricht dieser Code mit folgender Fehlermeldung ab:

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
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)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)

Lösung

Als erstes muss man sicherstellen, ob sich der Treiber, im Classpath befindet. Ist dies der Fall und man hat kein SQL-Server 2005, ist sollte es funktionieren - nehme ich an. Angenommen deshalb, weil dieser Code so oft verwendet wird.

Beim MS-SQL Server 2005, muss man auch den Code anpassen. Der richtige Code lautet:

Download Code!

  1.  
  2. try {
  3.     // Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
  4.     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  5.     // con = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;databaseName=test;user=test;password=test;");
  6.     con = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=test;user=test;password=test;");
  7. } catch (Exception e){
  8.     e.printStackTrace();
  9. }
  10.  

Wie ihr sehen könnt, hat sich einmal beim Class.forName die Position von jdbc und sqlserver geändert (vertauscht). Zum anderen, ist beim Aufruf von DriverManager.getConnection der microsoft Teil weggefallen.

Bewertung: 1 von 5, 1 Stimme(n) 2521 Klicks
Probleme und Lösungen
Von Mr.Foo in Probleme und Lösungen am 17.12.06@16:12 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

1 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Bemar - #1 - 11.09.2008 13:41 - (Antwort)

Man kann aber z.B. für den SQL Server 2000 auch den JDBC Driver für 2005 benutzen. So spart man sich Fallunterscheidungen wenn man beides nutzen oder upgraden möchte.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen