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.170
570
Arnsberg, Sauerland
Firma
Shopworker GmbH
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.170
570
Arnsberg, Sauerland
Firma
Shopworker GmbH
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.170
570
Arnsberg, Sauerland
Firma
Shopworker GmbH
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
Rabatt Coupons in Verbindung mit Staffelpreisen - JTL 1.11.9, JTL Shop JTL-Wawi 1.11 0
Keine Datenübertragung trotz bestehender Verbindung und funktionierendem Server JTL-Wawi 2.0 33
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu Installation von Plugin PayPal Check-Out fehlgeschlagen, keine Verbindung zum Webshop Plugins für JTL-Shop 6
Keine APP oder API Verbindung möglich JTL-Wawi App 4
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 5
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 1
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 1
Neu MS Server und MS SQL Installation von JTL-Wawi 5
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 4
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 3
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 5
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2

Ähnliche Themen