Ich versuche gerade Daten aus einer MS Access-DB mit Java auszulesen. Geht unter Windows problemlos, unter Linux (Ubuntu Feisty Fawn) krieg ich folgende Exception beim Aufruf:
Hab bereits etwas gegoogelt und ein paar Threads diesbezüglich im Sun Developer Forum gefunden, die konnten mir allerdings leider auch net weiterhelfen.
Hier der Code:
Alles anzeigen
java.sql.SQLException: [unixODBC][Driver Manager]Data source name not found, and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at MyConnection.getConnection(JDBCapp.java:43)
at JDBCapp.main(JDBCapp.java:13)
Hab bereits etwas gegoogelt und ein paar Threads diesbezüglich im Sun Developer Forum gefunden, die konnten mir allerdings leider auch net weiterhelfen.
Hier der Code:
Java-Quellcode
- import java.sql.Connection;
- import java.sql.Driver;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- class JDBCapp {
- static Connection theConn;
- public static void main (String args[]) {
- try {
- theConn = MyConnection.getConnection();
- ResultSet rs;
- Statement stmt;
- String sql;
- sql = "SELECT * FROM Categories";
- stmt = theConn.createStatement();
- rs = stmt.executeQuery(sql);
- while (rs.next()) {
- System.out.println(rs.getString("CategoryName"));
- }
- rs.close();
- stmt.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (theConn != null) theConn.close();
- } catch (Exception e) {}
- }
- }
- }
- class MyConnection {
- public static Connection getConnection() throws Exception {
- String db = "./BugTypes.mdb";
- DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
- Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
- Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+db);
- return c;
- }
- }
[Blockierte Grafik: http://www.fes-kommcheckers.de/images/08_rechtsextremismus.jpg]