Access Verbindung herstellen
chris
- java
0 lina-0 Axel Richter
Hallo allerseits!
Ich bins mal wieder. Ich raste langsam aus. Bei mir klappt gar nix. Ich möchte in meinem Servlet eine Datenbankverbindung herstellen. FOlgender Code wird verwendet:
// Verbindung zu einer Datenbank herstellen
private void connectToDB() {
File dbpath = new File("D:\Daten\CMDB\Service_Test.mdb");
String path = dbpath.toString();
con = null;
Driver datenbanktreiber = new sun.jdbc.odbc.JdbcOdbcDriver();
try {
DriverManager.registerDriver(datenbanktreiber);
String fullstring =
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +
path;
con = DriverManager.getConnection(fullstring);
} catch (SQLException e) {
/*try {
resp.getWriter().write("FEHLERFEHLER");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}*/
}
}
Ich bekomme beim Ausführen des Servlets aber immer nur folgende Meldung: Error 500: sun/jdbc/odbc/JdbcOdbcDriver
Ich weiß bald echt nicht mehr weiter. Hoffe, mir kann jemand helfen...Danke!
moin chris :)
Versuchs mal mit dem Code von diesem Servlet-Tutorial:
Connection con = null;
try {
// Load (and therefore register) the JDBC-ODBC Bridge
// Might throw a ClassNotFoundException
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// Get a connection to the database
// Might throw an SQLException
con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");
// The rest of the code goes here.
}
catch (ClassNotFoundException e) {
// Handle an error loading the driver
}
catch (SQLException e) {
// Handle an error getting the connection
}
finally {
// Close the Connection to release the database resources immediately.
try {
if (con != null) con.close();
}
catch (SQLException ignored) { }
}
liebe Grüße aus Berlin
lina-
moin chris :)
Versuchs mal mit dem Code von diesem Servlet-Tutorial:
Connection con = null;
try {
// Load (and therefore register) the JDBC-ODBC Bridge
// Might throw a ClassNotFoundException
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// Get a connection to the database
// Might throw an SQLException
con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");// The rest of the code goes here.
}
catch (ClassNotFoundException e) {
// Handle an error loading the driver
}
catch (SQLException e) {
// Handle an error getting the connection
}
finally {
// Close the Connection to release the database resources immediately.
try {
if (con != null) con.close();
}
catch (SQLException ignored) { }
}
>
> liebe Grüße aus Berlin
> lina-
Hihi, jetzt haben wir 2 uns aber hier gefunden ;-)
Danke, dann werde ich das mal versuchen!
moin chris :)
Versuchs mal mit dem Code von diesem Servlet-Tutorial:
Connection con = null;
try {
// Load (and therefore register) the JDBC-ODBC Bridge
// Might throw a ClassNotFoundException
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// Get a connection to the database
// Might throw an SQLException
con = DriverManager.getConnection("jdbc:odbc:somedb", "user", "passwd");// The rest of the code goes here.
}
catch (ClassNotFoundException e) {
// Handle an error loading the driver
}
catch (SQLException e) {
// Handle an error getting the connection
}
finally {
// Close the Connection to release the database resources immediately.
try {
if (con != null) con.close();
}
catch (SQLException ignored) { }
}
> >
> > liebe Grüße aus Berlin
> > lina-
>
> Hihi, jetzt haben wir 2 uns aber hier gefunden ;-)
> Danke, dann werde ich das mal versuchen!
Sorry, ich bins nochmal: Also meine DB liegt unter folgendem Pfad: D:\Daten\CMDB\Service\_Test.mdb. Wie/Wo kann/muss ich den Pfad einbinden? Und meine DB ist nicht durch PW und Username geschützt. Spielt das eine ROlle?? Liebe GRüße
Hallo Chris,
Und meine DB ist nicht durch PW und Username geschützt. Spielt das eine ROlle?
selbstverständlich ist der Zugriff auf Deine DB nur in Verbindung mit einem Benutzernamen möglich. Der Benutzer heißt Administrator, das Passwort des Benutzers ist leer. Das ist der Standardbenutzer, den Access verwendet, wenn es für eine MDB-Datei nicht explizit anders eingerichtet wird. Access verwendet dazu Arbeitsgruppen-Informationsdateien, die typischerweise die Endung mdw tragen. In moderneren Access-Versionen verwaltest Du diese über
Extras -> Sicherheit -> Arbeitsgruppen-Administrator
Freundliche Grüße
Vinzenz
moin lina- :)
...
String fullstring = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + path;
con = DriverManager.getConnection(fullstring , "user", "passwd");
Beachte bitte Vinzenz, der dir das mit dem Benutzer und Passwort erklärt hat.
liebe Grüße aus Berlin
lina-
Hallo,
für DSN-lose Connections zu Access via jdbc:odbc funktioniert bei mir Folgendes:
import java.sql.*;
class JDBCAccessDemo {
public static void main(String[] args){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myDB ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Dokumente und Einstellungen\\Axel\\Eigene Dateien\\db1.mdb";
Connection con = DriverManager.getConnection(myDB,"","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Tabelle1");
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch(java.lang.ClassNotFoundException cnfe) {
cnfe.printStackTrace();
} catch(java.sql.SQLException sqle) {
sqle.printStackTrace();
}
}
}
Siehe http://www.rgagnon.com/javadetails/java-0345.html und http://www.exampledepot.com/egs/java.sql/LoadDrivers.html.
viele Grüße
Axel