繁体   English   中英

Java无法使用Eclipse连接到MS Access数据库

[英]Java not connecting to MS Access database using Eclipse

谁能帮我? 我已经尝试解决了一个小时,但我仍然感到困惑。 下面是我的代码,编译时出现此错误。

输出味精::

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

getConnection()重载方法

1) getConnection( String url, Properties info )

url-格式为jdbc:subprotocol:subname的数据库URL

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

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

url-格式为jdbc:subprotocol:subname的数据库URL

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

密码-用户的密码

3) getConnection( String url )

url-格式为jdbc:subprotocol:subname的数据库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之后有多余的分号和多余的空间。 也许您想尝试上面的语法,看看会发生什么。 我不确定文件部分,但如果在进行分号/空格修复后,您的网址仍然失败,则可能需要调查一下。

还要查看此问题,以获取有关其他选项的更多信息使用用户名和密码连接

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

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. 打开开始>控制面板>性能和维护>管理工具>数据源(ODBC)>单击“系统DSN”选项卡>单击“添加”>选择Microsoft Access Driver(accdb,mdb)>命名:instance,(因为getConnection(“ jdbc: odbc:instance“),然后单击并浏览位于硬盘驱动器中的DB.accdb),按ok并重新启动命令提示符。 然后再次运行代码。

    在Eclipse中运行相同的代码

  3. 创建一个Java项目。

  4. 添加一个主类并编辑该主类的源代码。 只需复制并粘贴about代码即可。
  5. 通过从jdk / bin目录添加jar文件来创建用户库。
  6. 通过链接用户库将构建路径链接到项目。
  7. 运行项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM