Neu Verbindung: Java - SQL Server der Wawi

idjgxd

Neues Mitglied
29. Mai 2019
6
0
Hallo zusammen,

ich bin ziemlich neu im Bereich JTL Wawi und habe eine Java-Anwendung geschrieben, die auf meine Datenbank zugreifen soll. Leider gelingt es mir nicht, eine Verbindung erfolgreich herzustellen.

Hier ist mein Quellcode:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MySQLConnection{
private static Connection con = null;


private MySQLConnection(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // Datenbanktreiber für JDBC Schnittstellen laden.

// Verbindung zur JDBC-Datenbank herstellen.
con = DriverManager.getConnection("
jdbc:sqlserver://xxx:49960;" +
"databaseName=eazybusiness;integratedSecurity=true;");
);
} catch (ClassNotFoundException e) {
System.out.println("Treiber nicht gefunden");
} catch (SQLException e) {
System.out.println("Verbindung nicht moglich");
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
}
}
Mein Problem ist, dass ich mir unsicher bin, welchen Servernamen und welchen Port ich angeben muss. Wenn ich im Server Manager nachschaue, steht beim Servername „xxx\JTLWAWI“. Wenn ich versuche, den Server anzupingen, funktioniert es nicht. Gebe ich im cmd den Servernamen ohne \JTLWAWI ein, klappt es fehlerfrei. Heißt das, ich muss in Java als Servername auch ohne \JTLWAWI arbeiten?

Zum Port: Standard ist 1433. Da ich zwischenzeitlich zwei Datenbanken hatte, gehe ich aber davon aus, dass ich mit UDP 1434 arbeiten muss. Wenn ich wiederum in cmd nachsehe, welcher Port für sqlservr.exe zuständig ist, wird mir 49960 angezeigt.
Ich habe es übrigens auch mit telnet getestet; dort klappt es mit dem Servernamen ohne \JTLWAWI (wie oben beschrieben) und Port 49960. Aber nicht in Java.

Wie ich es drehe und wende, klappt die Verbindung aber nie...
Ich habe schon einiges ergoogelt, die Ports freigegeben, aber nichts hilft mir weiter. Vllt übersehe ich etwas? Wäre für jede Anregung dankbar!

Fehlermeldung im Output:
Verbindung nicht moglich
SQLException: Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'xxx', Port 49960. Fehler: 'Der Treiber hat eine unerwartete Antwort vor der Anmeldung erhalten. Überprüfen Sie die Verbindungseigenschaften, und stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird, die TCP/IP-Verbindungen am Port annimmt. Dieser Treiber kann nur mit SQL Server 2000 oder höher verwendet werden.'. ClientConnectionId:27c5b76d-a3ff-420b-b0c8-2696dd40153e
SQLState: 08S01
VendorError: 0
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.140
559
Arnsberg, Sauerland
Ich kann nur eine Mutmaßung anstellen: Stell mal einen festen Port für die Wawi-Datenbank ein und überprüfe ob TCP/IP für diese Datenbank aktiv ist.
Kommst du mit der Wawi an die Datenbank? Evtl. als Servername noch die IP nehmen ...
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
Wichtig: Du musst den Instanznamen (das \JTLWAWI) in der Verbindungszeichenfolge mit angeben!
Es müsste also "jdbc:sqlserver://xxx:49960\JTLWAWI;" sein...
 

darthvader

Aktives Mitglied
29. Juni 2014
56
10
wenn ich mich recht erinnere ist der Connect-String `jdbc:sqlserver://<servername>\<instancename>:<port>`

D.h. port und Instanzname müssen vertrauscht werden.
 

idjgxd

Neues Mitglied
29. Mai 2019
6
0
Stell mal einen festen Port für die Wawi-Datenbank ein und überprüfe ob TCP/IP für diese Datenbank aktiv ist.
Kommst du mit der Wawi an die Datenbank? Evtl. als Servername noch die IP nehmen ...

Momentan werden mir diese Ports für die Datenbank angezeigt. Bei den ersten beiden habe ich die Portnummer geändert und die Null bei TCP Dynamic Ports entfernt. Mache ich das richtig? Soll ich die anderen Felder genauso bearbeiten?
Die Verbindung zwischen Datenbank und Wawi funktioniert auf jeden Fall.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    36,2 KB · Aufrufe: 17
  • Unbenannt2.PNG
    Unbenannt2.PNG
    26 KB · Aufrufe: 17

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.140
559
Arnsberg, Sauerland
Momentan werden mir diese Ports für die Datenbank angezeigt. Bei den ersten beiden habe ich die Portnummer geändert und die Null bei TCP Dynamic Ports entfernt. Mache ich das richtig? Soll ich die anderen Felder genauso bearbeiten?
Die Verbindung zwischen Datenbank und Wawi funktioniert auf jeden Fall.

Hallo,

ich lasse immer die Dynamic Ports bei 0 und die TCP Ports leer
Ganz unten unter IPAll stelle ich unter TCP Port dann den individuellen Port, z.B. 45678 ein, das reicht ...
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
4.140
559
Arnsberg, Sauerland
Laut Microsoft Server Management Studio ist der Servername „xxx\JTLWAWI“ (siehe Anhang) und müsste der Instanzname nicht der Name der Datenbank sein? Also: „xxx\JTLWAWI\eazybusiness“?

Ich finde bei Microsoft folgende Information:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]]

würde in deinem Falle heißen:

jdbc:sqlserver://JENNIEGIRANFBB5\JTLWAWI:45678

Vorausgesetzt du setzt den Port auf 45678 und deine Wawi-Instanz heisst JTLWAWI
 
  • Gefällt mir
Reaktionen: idjgxd

idjgxd

Neues Mitglied
29. Mai 2019
6
0
jdbc:sqlserver://JENNIEGIRANFBB5\JTLWAWI:45678

Ich denke, ich habe das verstanden und korrekt umgesetzt. Zumindest wird nicht mehr angezeigt, dass die Verbindung nicht möglich ist. Wenn ich nun allerdings meine Abfrage durchführe, wird angezeigt:

com.microsoft.sqlserver.jdbc.SQLServerException: Es wurde kein Resultset von der Anweisung zurückgegeben.

Im MS SQL Management Studio funktioniert die Abfrage jedoch... Ist vllt doch die Verbindung fehlerhaft? Oder liegt es am Quellcode:

Statement query;
try {
query = con.createStatement();

String sql = "USE eazybusiness;";
query.executeQuery(sql);
// Tabelle anzeigen
sql = "SELECT kArtikel, fVKNetto, fUVP FROM tArtikel;";

ResultSet result = query.executeQuery(sql);

// Ergebnisstabelle durchforsten
while (result.next()) {
String kArt = result.getString("kArtikel");
String fVKNet = result.getString("fVKNetto");
String fUVP = result.getString("fUVP");
String info = kArt + ", " + fVKNet + ", " + fUVP;

System.out.println(info);
}
} catch (SQLException e) {
e.printStackTrace();
}
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    30,1 KB · Aufrufe: 10

IT-WEFA

Gut bekanntes Mitglied
3. April 2019
289
22

Hier ist dein Fehler
sql = "SELECT kArtikel, fVKNetto, fUVP FROM tArtikel;";
" ; " in deiner SQL muss raus!

mit welcher IDE arbeitest du ? Solltest sowas immer in ein Try - Catch ausführen!

Probier das mal

Code:
 String SQL = "SELECT * .... ";

        try {
            PreparedStatement pStmt = con.prepareStatement(SQL);
            ResultSet rs = pStmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("ColumnName"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }


Versuch mit prepareStatement bzw executeStatement zu arbeiten.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Verbindung zu Shopify Connector (App) -> "Lizensdaten ungültig" Shopify-Connector 1
Neu Verbindung zur Wawi manchmal langsam Allgemeine Fragen zu JTL-POS 0
Neu Nach Windows update auf dem Server keine Verbindung mehr zur Datenbank JTL-Wawi - Fehler und Bugs 4
Neu Shop 5.6. pagespeed FCP LCP Optimierung - java script & CSS veraltet bzw. nicht verwendet - Cache Dauer Betrieb / Pflege von JTL-Shop 6
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL_DirectQuery - SQL Abfrage Anzahl der Pakete auf Versandliste (DPD) User helfen Usern - Fragen zu JTL-Wawi 3
Neu Welche SQL Server Version für WaWi 1.0.0.0.0 unter Windows 11 Installation von JTL-Wawi 6
Neu Bilder von Kinderartikeln auf Vaterartikel kopieren via SQL Eigene Übersichten in der JTL-Wawi 2
Neu Täglich SQL Backup vom Shop Allgemeine Fragen zu JTL-Shop 2
Kann ich mit dieser SQL Version die neue WaWi 1.11.1 installieren? JTL-Wawi 1.11 2
Neu Kundengruppe per SQL löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Sql Express 2022 - wawi sagt beim Start es ist ein Update bereit - gelöst Installation von JTL-Wawi 3
Neu Extern erstelltes SQL - Angebot falsche Werte User helfen Usern - Fragen zu JTL-Wawi 3
Neu In welcher SQL Tabelle finde ich den Ansprechpartner des Herstellers? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Seriennummern und SQL Abfragen User helfen Usern - Fragen zu JTL-Wawi 1
Update SQL Server Management Studio JTL-Wawi 1.10 1
Neu Einrichtung SQL in neuem Rechner funktioniert nicht Installation von JTL-Wawi 3
Neu SQL Code für GPSR Felder (Kaufland) zeigt Fehler + wird daher nicht übertragen kaufland.de - Anbindung (SCX) 0
Neu SQL für noch nie Verkaufte Artikel auf Marktplätzen. User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen