Conectando um banco de dados do Microsoft Access ao Java usando JDBC e compilando

para um projeto de banco de dados da escola, estamos criando um programa de banco de dados (GUI do usuário e banco de dados). Usando o Microsoft Access 2010, criei o banco de dados e o preenchi com alguns dados de exemplo, salvei-o no formato .mdb e coloquei-o na minha pasta do projeto.

Ao executá-lo no eclipse, o código a seguir funciona bem, conecta e até recupera a consulta. No entanto, acho que não consigo exportar o código para um jar e executá-lo (o que é necessário para o projeto, forneça uma cópia de trabalho do seu programa em um CD ou unidade flash) e também não consigo portar o código. código para o Netbeans para que funcione, além de tentar compilar em uma máquina Linux.

Suponho que este seja um problema ao incluir drivers ou tentar usar o acesso da Microsoft. O erro que recebo ao executar o jar ou ao Netbeans é fornecido abaixo do código. Então, pergunto: como incluo drivers para tornar o programa portátil, ou de que outra forma posso abordar esse problema?

desde já, obrigado

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);

    }
}

O erro mencionado acima:

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)

questionAnswers(5)

yourAnswerToTheQuestion