Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich hab mal ne Frage..

Ich brauche JDBC-Treiber für MSSQL und MS Access..

Ich hab das Forum schon durchsucht und hab auch was gefunden.

Dort wird auf einen Link verwiesen:

http://industry.java.sun.com/products/jdbc/drivers

Doch wenn ich da nach einem Treiber suche, bekomme ich

immer kommerzielle Treiber.. also entweder ich löhne oder kann

die Dinger nur 30 Tage benutzen..

Kann mir jemand sagen, obs die Dinger auch irgendwo kostenfrei

gibt?

Achja nochwas:


java.sql.DriverManager.getConnection(url, username, passwort);

Wo bekomme ich die URL her?? Es heißt im Forum so einfach:

Das ist die URL von deinem Treiber... aber wie um alles in der Welt

finde ich die raus oder trage ich die ein????

MFG

Druid :cool:

Geschrieben

Zu erstens kann ich Dir keine Antwort geben, da ich nicht weiss, welche Treiber es für MSSQL gibt.

Dir URL Deines Treibers (ist ja eine .jar-Datei) ist einfach der Pfad, den Du entweder relativ zum Projekt angibst, oder absolut im Dateisystem (nicht so toll).

Peter

Geschrieben

Verbindung ohne DSN:

jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=<filename>

This works with other ODBC Drivers (Excel, DBF, Text etc) as well.

desweiteren findest du hier weitere beispiele.

wenn du im odbc administrator ne dsn einrichtes (zu ner mssql db z.b.) musst du einfach nur den namen der verbindung als url uebergeben. davor halt noch jdbc:odbc ...

(edit: quote macht aus : D ein smiley. :()

so long

Geschrieben

und wie könnte so eine url besipielsweise

ausschauen, wenn ich die Treiber im Ordner des Projektes

angenommen: /project

in einem Ordner /driver habe und der Name des Treibers

driver_odbc.jar ist?

MFG

Druid :cool:

Geschrieben

wenn du im odbc administrator ne dsn einrichtes (zu ner mssql db z.b.) musst du einfach nur den namen der verbindung als url uebergeben. davor halt noch jdbc:odbc ...

aha.. danke ;)

also mal angenommen ich habe einen lokalen mssql7-server und möchte mit

jdbc darauf connecten.. Mein PC hat den Namen Druid und so heißt der SQL-Server

dann logischerweise auch..

Ich möchte mich jetzt auf den SQL - Server connecten..

mach ich das dann mit:


jdbc:mssql:localhost

Ich hab keine Ahnung.. :(

Machen wir es mal anhand vom oberen Beispiel....

1 MSSQL7 - Server

lokal auf meinem Rechner

Java2

und ich möchte auf den Server connecten..

Danke schonmal im voraus :)

MFG

Druid :cool:

Geschrieben

geh in die odbc verwaltung, richte eine neue system dsn ein.

dort musst du alle verbindungsdaten zum mssql server eintragen.

wenn du das hast, schreibst du in das java prog:

jdbc:odbc:MeineSQLDsn

so long

Geschrieben

Hi,

probiere mal den Treiber von: http://jtds.sourceforge.net/ aus.

Die genaue Schreibweise der URL ist von Treiber zu Treiber verschieden. Da hilft nur Doku lesen.

Bei jdts heisst der Class Name für den Drivermanager:

net.sourceforge.jtds.jdbc.Driver

und der Aufbau der URL ist:

jdbc:jtds:sqlserver://SERVER-NAME/DB-NAME

oder allgemein:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

Gruß Jaraz

PS: Zu meinem Vorredner, die jdbcodbc bridge von Sun, sollte man imho nur im absoluten Notfall benutzen.

Sie ist langsam und fehleranfällig.

Geschrieben

danke für die vielen Tips..

Ich hab jetzt folgendes gemacht:


private void connect_db(java.awt.event.MouseEvent evt) {

        // Add your handling code here:

        String url="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=test.mdb";

        java.sql.Connection con=java.sql.DriverManager.getConnection(url);

        if(con.isClosed()==true){

            jLabel2.setText("Keine Datenbankverbindung");

        }

        else{

            jLabel2.setText("Datenbankverbindung erstellt");

        }


    }

jetzt bringt der mir immer die Fehlermeldung:

Gui_test.java [96:1] unreported exception java.sql.SQLException; must be caught or declared to be thrown

        java.sql.Connection con=java.sql.DriverManager.getConnection(url);

                                                      ^

Gui_test.java [97:1] unreported exception java.sql.SQLException; must be caught or declared to be thrown

        if(con.isClosed()==true){

              ^

2 errors

Errors compiling Gui_test.

Was will er mir nun wieder damit sagen??

MFG

Druid :cool:

Geschrieben

du solltest dir das java handbuch durchlesen!

du musst exceptions mit einer try-catch-(final) anweisung abfangen.

try {

some java code

}

catch (Exception e)

{

e.printStackTrace();

}

so long

Geschrieben

Du hast dein "try-catch" vergessen.

Füge alles, was eine SQLException werfen kann in den "try"-Block und fange dann die evtl. entstehende SQLException im "catch"-Block.

Weißt du wie sowas geht?? :rolleyes:

MfG Peeter

~~~ edit ~~~

Verdammt, zu langsam! :uli

Geschrieben

Glaub schon, dass ich weiß wie das geht..


try{

        String url="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=test.mdb";

        java.sql.Connection con=java.sql.DriverManager.getConnection(url);

        if(con.isClosed()==true){

            jLabel2.setText("Keine Datenbankverbindung");

        }

        else{

            jLabel2.setText("Datenbankverbindung erstellt");

        }

} catch (Exception e) {

    System.out.println("Fehler " + e);

}

kann das so stimmen?

@Jaraz... Stimmt, ich hab keine Ahnung, was ich hier mach..

Ich weiß nur, dass ich eine Verbindung zu einem DBMS machen will

und ihr müsst mir "Ahnung" eintrichtern ;)

MFG

Druid :cool:

Geschrieben

Ja, stimmt so. Ich würde aber nur ne "SQLException" auffangen. Nicht ALLE "Exceptions".

Warum müssen wir dir das eintrichtern?? :confused:

Ein bisschen Eigeninitiative ist bei Java schon gefragt!

MfG Peeter

Geschrieben
Originally posted by Druid

@Jaraz... Stimmt, ich hab keine Ahnung, was ich hier mach..

Ich weiß nur, dass ich eine Verbindung zu einem DBMS machen will

und ihr müsst mir "Ahnung" eintrichtern ;)

Ja, aber die Connection ist nur der erste Schritt. Und wenn ich das was alles in der Einleitung steht tippe, bekomme ich wunde Finger und das willst du doch nicht, oder?

Also, versuchs nach der oben stehenden Beschreibung.

Die ganze Kursunterlage von H.Partl

http://www.boku.ac.at/javaeinf/ ist übrigens sehr empfehlenswert.

Gruß Jaraz

Geschrieben

nochmal der direktlink:

http://www.javabuch.de/

das ding gibts zum freien download. und du darfst es in der firma auf nen webserver schieben.

ist alles drin, was man fuer java braucht, inkl. einfuehrung objektorientierung undundund ... sehr empfehlenswert.

ich habs zuhause und im geschaeft aufm webserver und hab mir auch schon die papierversion gekauft. :)

soviel zum thema eigeninitiative.

wenn du sonst noch probleme hast, die net im java handbuch stehen, kannst ja immernoch fragen. aber zuerst solltest du dich gescheit einarbeiten. ;)

Geschrieben

Jaja.. is ja schon gut..

hab schon verstanden ;)

ich danke euch trotzdem, dass Ihr euch mit mir rum

geschlagen habt... *g*

Und ich werde jetzt ein bisschen in dem Javabuch

blättern und Eigeninitiative entwickeln..

Ich schwöre.. ich poste erst wieder, wenn ich

selbständig eine DB-Connection zustande

gebracht hab´*g*

;)

MFG

Druid :cool:

Geschrieben
Originally posted by Druid

Ich schwöre.. ich poste erst wieder, wenn ich

selbständig eine DB-Connection zustande

gebracht hab´*g*

;)

Da gerade Mittag ist und ich noch was altes gefunden habe.

Voraussetzung, es existiert eine entsprechende ODBC Verknüpfung "daten" auf deinem Recher.

Es wird die maximale id aus einer Tabelle session gelesen und der entsprechende Datensatz in der Tabelle logging gelöscht.


import java.awt.*;
import java.sql.*;


public class JDBCQuery {

public static void main(String[] av) {
try {
System.out.println("Loading Driver (with Class.forName)");
// Load the jdbc-odbc bridge driver
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");


Connection conn = DriverManager.getConnection (
"jdbc:odbc:daten",
"", ""); // user, passwd

Statement stmt = conn.createStatement();

System.out.println("Executing Query");
ResultSet rs = stmt.executeQuery("select max(SessionNr) from Session");


rs.next();
int x = rs.getInt(1);
stmt.executeUpdate("delete from logging where sessionnr = "+x);

rs.close(); // All done with that resultset
stmt.close(); // All done with that statement
conn.close(); // All done with that DB connection

} catch (ClassNotFoundException e) {
System.out.println("Can't load driver " + e);
e.printStackTrace();
} catch (SQLException e) {
System.out.println("Database access failed " + e);
e.printStackTrace();
}

}
}
[/php]

Gruß Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...