Seite 1 von 1

SQL Statement mit Benutzername und Passwort

Verfasst: So 15. Nov 2020, 21:26
von emeiler
Guten Tag,

in unserer Anwendung wird die Verbindung zum SQL Server über ein Statement ausgeführt. Benutzername und Passwort werden mit dem Connection String übergeben.

Leider klappt es nicht mit Firebird. Hier ist ein Beispiel:

jdbc:firebirdsql://192.168.1.246:3050/C:\Program Files\Firebird\Firebird_2_5\EMODAT.FDB,user=SYSDBA,password=masterkey

Bitte um Hilfe, ob das möglich ist und wie die Formatierung aussehen muss?
Vielen Dank für die Hilfe im Voraus.

Beste Grüße
emeiler

Re: SQL Statement mit Benutzername und Passwort

Verfasst: Mo 16. Nov 2020, 09:11
von bfuerchau
Statt Komma nimm ein Semikolon als Trenner der Verbindungseigenschaften.

Re: SQL Statement mit Benutzername und Passwort

Verfasst: Mi 25. Nov 2020, 00:38
von emeiler
Hallo,

danke für die Antwort. Das hat leider nicht geklappt.

Ich wollte etwas ausführen was ich durchführe:

Auf enem Windows Server ist eine Firebird 2.5 installiert.
Dort wurde eine Test-DB erstellt.

Wie im fb01.png dargestellt kann ich auf dem Windows Server mit dem C:\Program Files\Firebird\Firebird_2_5\bin>isql auf der Datenbank den query ausführen.

Auf einem Ubuntu ist unsere Anwendung installiert, mit der ich eine Verbindung und ein Query ausführen möchte. Der Treiber wurde unter https://firebirdsql.org/en/jdbc-driver/ heruntergeladen.

Diesen Treiber haben wir eingebunden: https://github.com/FirebirdSQL/jaybird/ ... DK_1.8.zip


Unter Tomcat\Logs erhalte ich aber folgende Fehlermeldung:

java.lang.ClassNotFoundException: org.firebirdsql.jdbc
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1928)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1771)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at eu.conatec.mobileforms.scheduler.LookupJob.load(LookupJob.java:196)
at eu.conatec.mobileforms.scheduler.LookupJob.refreshLookupData(LookupJob.java:138)
at eu.conatec.mobileforms.scheduler.LookupJob.execute(LookupJob.java:83)
at eu.conatec.mobileforms.scheduler.MFJob.execute(MFJob.java:46)
at eu.conatec.mobileforms.scheduler.impl.MFScheduler$1.run(MFScheduler.java:136)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)


Deshalb wollte ich über sqlite die Verbindung aubauen und testen.
Das habe ich unter Linux versucht und es hat auch nicht geklappt:

fb03.png

Unter dem Windows Server habe ich das auch verusucht und hat auch nicht geklappt.

fb02.png

Verwende ich den falschen Treiber?

Grüsse
Eduard

Re: SQL Statement mit Benutzername und Passwort

Verfasst: Mi 25. Nov 2020, 12:07
von bfuerchau
Classnotfound-exception bedeutet, dass der Treiber im Classpath nicht aufgeführt ist.
Du musst ein Zip-Datei im Classpath, wie jedes andere Verzeichnis auch, ergänzen.
U.U. ist der Treiber noch zu registrieren:

https://www.baeldung.com/java-jdbc-loading-drivers

Für die Verbindungseigenschaften bleibts aber trotzdem beim Semikolon.
User und Kennwort kannst du aber auch in getConnection direkt angeben.

https://alvinalexander.com/java/jdbc-co ... sqlserver/

Re: SQL Statement mit Benutzername und Passwort

Verfasst: Mi 2. Dez 2020, 05:56
von vr2
Hallo Eduard,

Kleinigkeiten: Du kannst das ganze etwas handlicher/sicherer gestalten, wenn Du den Pfad zur Datenbank als Alias in der aliases.conf einträgst:

Code: Alles auswählen

emodat=C:\Program Files\Firebird\Firebird_2_5\EMODAT.FDB
Dann kannst Du die DB in clients über den Alias emodat ansprechen. Würde außerdem die Datenbank nicht ins Binärverzeichnis des Datenbankservers packen, sondern woanders hin, Trennung von Code und Daten, damit Du beides separat ohne Probleme verwalten/verändern kannst.

Grüße, Volker