Подключение базы данных Microsoft Access к Java с помощью JDBC и компиляция

для школьного проекта базы данных, который мы создаем программу базы данных (пользовательский графический интерфейс и база данных). Используя Microsoft Access 2010, я создал базу данных и заполнил ее некоторыми образцами данных, сохранил их в формате .mdb и поместил в папку моего проекта.

При запуске в eclipse следующий код работает нормально, подключает и даже извлекает запрос. Однако я обнаружил, что не могу экспортировать код в банку и запустить его (что требуется для проекта, предоставьте им рабочую копию вашей программы на компакт-диске или флэш-накопителе), и я также не могу перенести код на Netbeans, чтобы он работал, а также пытался скомпилировать на машине Linux.

Я предполагаю, что это проблема с включением драйверов или попыткой использования доступа Microsoft. Ошибка, которую я получаю при запуске jar или Netbeans, приведена под кодом. Поэтому я спрашиваю, как мне включить драйверы, чтобы сделать программу переносимой, или как еще подойти к этой проблеме?

Заранее спасибо

import java.sql.*;

public class JDBCTest {
    static Connection connection;
    static Statement statement;

    public static void main(String args[]){

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=TLDATABASEDBM.mdb";
            connection = DriverManager.getConnection( database ,"",""); 

            buildStatement();
            executeQuery();

        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Error!");
        }
    }

    public static void buildStatement() throws SQLException {
        statement = connection.createStatement();
    }

    public static void executeQuery() throws SQLException {

        boolean foundResults = statement.execute("SELECT * FROM tblStaff  AS x WHERE City='Calgary'");
        if(foundResults){
            ResultSet set = statement.getResultSet();
            if(set!=null) displayResults(set);
        }else {
            connection.close();
        }
    }

    public static void displayResults(ResultSet rs) throws SQLException {
        ResultSetMetaData metaData = rs.getMetaData();
        int columns=metaData.getColumnCount();
        String text="";

        while(rs.next()){
            for(int i=1;i<=columns;++i) {
                text+=""+metaData.getColumnName(i)+":\t";
                text+=rs.getString(i);
                //text+="</"+metaData.getColumnName(i)+">";
                text+="\n";
            }
            text+="\n";
        }

        System.out.println(text);

    }
}

Ошибка, упомянутая выше:

java.sql.SQLException: [Microsoft][ODBC 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 tldatabase.DataConnect.makeConnection(DataConnect.java:35)
        at tldatabase.Main.main(Main.java:24)
9
задан Luke Woodward 22 February 2012 в 22:35
поделиться