簡體   English   中英

MS ACCESS jdbc.odbc連接。 找不到數據源名稱/未指定默認驅動程序?

[英]MS ACCESS jdbc.odbc connection. data source name not found/No default driver specified?

我正在嘗試在學校學習基本的SQL測試,但不幸的是,我將本應使用的類復制到PC上的項目中,並且遇到以下錯誤:

java.sql.SQLException:[Microsoft] [ODBC驅動程序管理器]找不到數據源名稱,未指定默認驅動程序

package Question1;

// Your name, Q 1
import java.sql.*;
import java.io.*;
import javax.swing.*;

public class GreenWood
{
 // Set up database connection
   private static final String DATABASE_FILE_NAME = "WoodDB.mdb";
   private static final String DRIVER = "jdbc:odbc:DRIVER=" +
   "{Microsoft Access Driver (*.mdb)};" +
   "DBQ=" + new File (DATABASE_FILE_NAME).getAbsolutePath ();
  static
  {
     try
     {
        Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
     }
         catch (ClassNotFoundException e)
        {
           System.out.println ("Class not found");
           e.printStackTrace ();
        }
  }


  private Connection dbcon;
  private BufferedReader keyb = new BufferedReader (new InputStreamReader (System.in));

   public GreenWood ()
  {
     System.out.println ("WoodDB Connection");
     try
     {
        dbcon = DriverManager.getConnection (DRIVER);
        Statement stmt = dbcon.createStatement ();
        System.out.println ("Connection successful\n");

        char choice = ' ';
        do
        {

         //Prints options for user input

           choice = keyb.readLine ().toUpperCase ().charAt (0);
           System.out.println (" ");
           switch (choice)
           {
             //calls query methods based on user input

           }
        }
        while (choice != 'X');
        dbcon.close ();
        System.out.println ("Done");
        Thread.sleep (1000);
        System.exit (0);
     } // try
         catch (Exception e)
        {
        // process exceptions here
           System.out.println ("Connection unsuccessful");
           e.printStackTrace ();
           System.out.println (e.toString ());
        }
  } // HoutSoorte constructor

  //Query Methods
  //Main creates new instance of GreenWood

我的WoodDB數據庫位於項目根目錄中。

我已經進行了一些故障排除,我相信問題出在驅動程序位置的URL。

dbcon = DriverManager.getConnection (DRIVER);

驅動因素是:

private static final String DRIVER = "jdbc:odbc:DRIVER=" +
   "{Microsoft Access Driver (*.mdb)};" +
   "DBQ=" + new File (DATABASE_FILE_NAME).getAbsolutePath ();

經過大約一個小時的研究,我仍然和以前一樣困惑。 如果有人能用嬰兒的語言解釋問題以及我如何解決這個問題,可以幫助這個nub程序員,那么我將不勝感激。

嘗試使用32位JVM。 嘗試從64位JVM連接時,出現相同的錯誤消息。

如果可行,請嘗試以下方法:

對於64位系統,請轉到:C:\\ windows \\ sysWOW64。 對於32位系統,轉到:C:\\ windows

有一個名為odbcad32.exe的可執行文件。

以管理員身份運行此exe文件,以訪問Microsoft Office等隨附的所有ODBC驅動程序。

創建名為my_data_source的數據源,並將連接字符串提及為:

連接con = DriverManager.getConnection(“ jdbc:odbc:my_data_source”);

以上解決方案在我的情況下有效。

請參考: 帶有MS Access的Java連接了解詳細信息。

嘗試使用DATABASE_FILE的完整路徑名或將其復制到源目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM