Java MSSQL Verbindung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Java MSSQL Verbindung

    Hallo,

    bin mal wieder mit einem Java-Problem am Start.
    Ich habe seit gestern bzw seit heute Morgen einen virtuellen Server, worauf ich MS SQL Server 2016 und das Management Studio 2017 installiert habe.
    Ich möchte nun eine Java Applikation schreiben, in der ich auf dieser Datenbank, die ich dort erstellt habe, extern zugreifen kann, also sprich dass jeder der das Programm hat dort die Daten aus der Datenbank laden kann.

    Ich hatte damals bereits das selbe mit MySQL gemacht. Mit dem MySQL Connector funktionierte das auch super, nur leider war der Anbieter der kostenlosen MySQL DB sehr schlecht, wie man es auch erwarten kann von kostenlosen Anbietern.. Jetzt möchte ich das ganze etwas "größer" gestalten, nämlich mit MSSQL und nicht mehr mit MySQL, hier treten jedoch einzelne Probleme auf und ich bin mir unsicher, wo es genau hakt.

    Zu aller erst mein Code (geschrieben in Eclipse):

    Java-Quellcode: MSSQL.java

    1. import java.sql.Connection;
    2. import java.sql.DriverManager;
    3. public class MSSQL {
    4. public static void main(String[] args) {
    5. String connectionUrl = "jdbc:sqlserver://MEINEIP:1433;DatabaseName=DBNAME;user=USER;password=PW";
    6. try {
    7. // Load SQL Server JDBC driver and establish connection.
    8. System.out.print("Connecting to SQL Server ... ");
    9. //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    10. try (Connection connection = DriverManager.getConnection(connectionUrl)) {
    11. System.out.println("Done.");
    12. }
    13. } catch (Exception e) {
    14. System.out.println();
    15. e.printStackTrace();
    16. }
    17. }
    18. }
    Alles anzeigen

    Die Daten bei connectionUrl oben habe ich natürlich in meine abgeändert.

    Ich erhalte beim Starten des Programms folgende Fehlermeldung:

    Quellcode

    1. java.sql.SQLException: No suitable driver found for jdbc:sqlserver://MEINEIP:1433;DatabaseName=DBNAME;user=USER;password=PW
    2. at java.sql.DriverManager.getConnection(Unknown Source)
    3. at java.sql.DriverManager.getConnection(Unknown Source)
    4. at MSSQL.main(MSSQL.java:15)

    Was ich bereits getan habe:
    - "Microsoft JDBC Driver 6.4 for SQL Server" heruntergeladen und entpackt.
    - Die Datei "mssql-jdbc-6.4.0.jre9.jar" vom JDBC Driver 6.4 in Eclipse eingefügt:
    - - Window - Preferences - Java - Build Path
    - - - User Libraries - New - Name "MSSQL" und der Pfad zu der Datei.
    - - - Classpath Variables - New - Name "MSSQL" und der Pfad zu der Datei.

    - Bei Umgebungsvariablen eine neue Systemvariable namens "CLASSPATH" erstellt, die ebenso zu der Datei führt.
    - Im SQL Configuration Manager bei "SQL Server-Netzwerkkonfiguration" im Unterpunkt "Protokolle für MSSQLSERVER" TCP/IP aktiviert
    - Der Port 1433 sollte eigentlich auch nicht blockiert sein

    Ich habe keine Ahnung ob das falsch oder richtig ist bzw. ob ich das überhaupt benötige. Ich kann mit der Fehlermeldung "Unknown Source" auch nicht viel anstellen, da ich nicht weiß, ob Eclipse nun den JDBC Driver nicht findet, weil ich den falsch eingefügt habe, oder ob es Probleme mit der Verbindung gibt.
  • So ich melde mich nochmal.

    Wenn ich vorher gewusst hätte, dass ich das Problem so schnell lösen würde, hätte ich nicht den Thread erstellt. Ich habe immer die blöde Angewohnheit, dass ich stundenlang suche, recherchiere, dann einen Thread erstelle wenn ich nicht weiterkomme und dann innerhalb der nächsten 10 Minuten das Problem dann plötzlich löse xD
    Aber gut, soll ja nicht schlecht sein.

    Folgendermaßen habe ich nun mein Problem gelöst:
    Zu aller erst habe ich die Systemvariablen, welche ich erstellt habe wieder gelöscht (da sie nicht von Nöten waren).
    Anschließend habe ich anstelle des SQL Driver 6.4 den SQL Driver 6.0 genommen und die Datei importiert.
    Danach hatte ich zumindest schon Verbindungsversuche (er hat also nun den richtigen Treiber gefunden!), allerdings immernoch keine erfolgreiche Verbindung.
    Zuletzt habe ich mir nochmal die Firewall vorgeknüpft. Es waren zwar keine Verbindungen blockiert, allerdings auch keine konfiguriert. Habe also den Port 1433 als Eingehende Verbindung hinzugefügt und schwubs Verbindung erfolgreich. Kann nun Daten aus meiner Datenbank laden.

    Sollte ich zu diesen Thema noch andere Probleme haben, werde ich mich nochmal melden. Gerne können sich auch andere mit ähnlichen Problemen hier melden, dass wir gemeinsam eine Lösung finden.
  • Hallo.

    Es funktioniert bei dir zwar nun, ich würde dir aber empfehlen ein Dependency Management zu verwenden. (bsp: maven). Damit kannst du viel leichter .jar Dateien zu deinem Projekt hinzufügen, ohne wild Datein aus dem Internet runterzuladen. (Versuchte gerade den Mssql Driver von microsoft zu laden -> Katastrophe^^)

    Bei Maven kannst du zum Beispiel deinen Treiber wie folgt definieren.

    <dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.4.0.jre8</version>
    </dependency>



    Eclipse erledigt den Rest. Falls das Projekt richtig konfiguriert ist, kannst du damit dann (hoffentlich) ohne Probleme dein Programm starten
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.