подключиться к MS доступу из Java - PullRequest
0 голосов
/ 16 ноября 2011

Я пытался подключить свою Java-программу к Access DB, используя мост jdbc-odbc, когда я пишу код подключения, это исключение выдается, и я не могу решить проблему

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 jdbc.TestAccesDBCon.getConnection(TestAccesDBCon.java:44)
    at jdbc.TestAccesDBCon.main(TestAccesDBCon.java:21)

Это мой код:

public static void main(String[] args) throws Exception {
    Connection conn = getConnection();
    Statement st = conn.createStatement();
    st = conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM users");
    ResultSetMetaData rsMetaData = rs.getMetaData();
    int numberOfColumns = rsMetaData.getColumnCount();
    System.out.println("resultSet MetaData column Count=" + numberOfColumns);
    st.close();
    conn.close();
  }

  private static Connection getConnection() throws Exception {
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";  
    String connectionString = "jdbc:odbc:Driver= " +
"{Microsoft Access Driver (*.accdb)};DBQ=TestDB.accdb;DriverID=01";
    Class.forName(driver);
    return DriverManager.getConnection(connectionString);
  }

почему выбрасывается это исключение? пожалуйста помогите?

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Похоже, что у вас не установлен драйвер доступа ODBC (драйверы ODBC не обязательны при установке Access!), Попробуйте установить драйверы с установочного носителя Access, если вы работаете в 64-битной системе, вы должны установить 64-битную версия драйвера.

Если вы, заходя в графический интерфейс ODBC Manager в Amministrative Tools под панелью управления, не найдете на вкладке источников источник:

Microsoft Access Driver (*.accdb)

это означает, что драйвер не установлен в вашей системе, и вам необходимо установить его.

Вы можете скачать драйвер Access 2010 с здесь .

1 голос
/ 16 ноября 2011

Вы можете попробовать с этим кодом

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String DBpath = "Your Database Path";
        String driver = "jdbc:odbc:Driver={Microsoft Access Driver (*.accdb)};DBQ=";
        driver += DBpath.trim() + ";DriverID=22;READONLY=true}";
        Connection con = DriverManager.getConnection(driver, "", "");
        Statement s = con.createStatement();
        con = DriverManager.getConnection(driver, "", "");
        return (Statement) s;
...