Druid Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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: Zitieren
kingofbrain Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
shad0w Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Druid Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 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: Zitieren
Druid Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 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: Zitieren
shad0w Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Jaraz Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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. Zitieren
shad0w Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 odbc ist immer langsam und fehleranfaellig. Zitieren
Druid Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 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: Zitieren
Jaraz Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 Hi, [x] ich glaube du hast im Moment null Ahnung was du da machst. Lese bitte folgende oder jede andere Einleitung zu JDBC. http://www.boku.ac.at/javaeinf/jein3.html#jdbc Gruß Jaraz Zitieren
shad0w Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Peeter Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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?? MfG Peeter ~~~ edit ~~~ Verdammt, zu langsam! :uli Zitieren
Druid Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 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: Zitieren
Peeter Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Jaraz Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
shad0w Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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. Zitieren
Druid Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 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: Zitieren
Jaraz Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Empfohlene Beiträge
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.