使用Eclipse的Java没有连接到MS Access数据库(Java not connectin

2019-09-26 13:18发布

谁能帮我? 我已经尝试过解决这个一小时,我仍然感到困惑。 下面是我的代码和编译时,我得到这个错误。

输出味精::

DriverLoaded
Could Not Connect to Databasejava.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at DBConnect.<init>(DBConnect.java:11)
    at DBConnect.main(DBConnect.java:21)

码::

import java.sql.*;

public class DBConnect {

    public DBConnect() {    
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("DriverLoaded");
            String url = "jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb";
            Connection con = DriverManager.getConnection(url);
            System.out.println("Connection Established Successfully");
        } catch(Exception e) {
            e.printStackTrace();
            System.out.println("Could Not Connect to Database");
        }
    }

    public static void main (String args[]) {       
        DBConnect dbcon = new DBConnect();  
    }
}

Answer 1:

对于重载方法getConnection()

1) getConnection( String url, Properties info )

url - 一个形式为jdbc的数据库URL:子协议:子名称

资讯 - 任意字符串标记/值对作为连接参数的列表; 通常至少一个“用户”和“密码”属性应该被包括

2) getConnection( String url, String user, String password )

url - 一个形式为jdbc的数据库URL:子协议:子名称

用户 - 代表其已建立的连接的数据库用户

密码 - 用户的密码

3) getConnection( String url )

url - 一个形式为jdbc的数据库URL:子协议:子名称

您所使用的最后一个构造函数考虑,看来你的URL语法不正确的。 我不熟悉的MS Access,但我会提供一个建议,我在另一个答案找到。

这是你的语法

"jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb"

正确的语法,我发现了

File f = new File("\\\\***\\***\\****\\***.accdb");

"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + f.getAbsolutePath();

看起来你有ODBC后不必要的分号和一个额外的空间。 也许你想尝试一下上面的句法,看看会发生什么。 我不知道有关文件的一部分,但你可能想看看这个问题,如果您的网址进行分号/空间修复后仍然失败。

看看这个问题也为其他选项的详细信息与用户名和密码连接



Answer 2:

下面是你的问题的工作代码...

import java.sql.*;

public class DBConnect {

    public DBConnect() {    
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("DriverLoaded");
            String url = "jdbc:odbc:instance";
            Connection con = DriverManager.getConnection(url);
            System.out.println("Connection Established Successfully");
        } catch(Exception e) {
            e.printStackTrace();
            System.out.println("Could Not Connect to Database");
        }
    }

    public static void main (String args[]) {       
        DBConnect dbcon = new DBConnect();  
    }
}

要遵循以下步骤:

  1. 在Windows XP系统中的任何目录下创建一个访问数据库DB.accdb。
  2. 打开开始> ControlPanel控制面板>性能和maintanance>管理工具>数据源(ODBC)>单击系统DSN选项卡>点击Add>选择Microsoft Access驱动程序(ACCDB,MDB)>有的名称:例如,(因为,的getConnection(“JDBC: ODBC:实例“),然后点击并浏览位于硬盘的DB.accdb)按OK键,重新启动命令提示符。 并再次运行代码。

    运行在Eclipse中相同的代码

  3. 创建一个Java项目。

  4. 添加一个主类和编辑这个主类的来源。 只是复制和粘贴的有关代码。
  5. 从JDK / bin目录添加jar文件创建一个用户库。
  6. 通过链接userlibrary构建路径链接到该项目。
  7. 运行该项目。


文章来源: Java not connecting to MS Access database using Eclipse