在Java中为MS Access创建无DSN连接

Sor*_*ami 6 ms-access odbc jdbc dsn

我正在构建一个需要与MS Access数据库通信的桌面应用程序.现在,除非我想在每台将要使用桌面应用程序的计算机上为数据库注册DSN,否则我需要一种以无DSN方式连接到数据库的方法.

我搜索了很多,并找到了一些关于如何创建连接字符串的有用链接,并基于此我尝试修改我的程序,但没有成功.以下代码失败.如果我将getConnection中的字符串切换为"jdbc:odbc:sampleDB"它可以正常工作,但这是使用DSN而不是我想要实现的.

如何在java中编写和使用连接字符串以建立与MS Access数据库的无DSN连接?

private Connection setupConnection() throws ClassNotFoundException,
        SQLException {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("Driver={Microsoft Access Driver (*.mdb)} &_ Dbq=c:\\as\\sampleDB.mdb");
    return con;
}
Run Code Online (Sandbox Code Playgroud)

另外:我还想指出,如果有人想知道如何通过DSN连接实现我的要求,我会很乐意听取它!

Mic*_*las 5

JDBC连接字符串shouls以jdbc::

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\Nwind.mdb
Run Code Online (Sandbox Code Playgroud)

所以尝试:

   Connection con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\\as\\sampleDB.mdb");
Run Code Online (Sandbox Code Playgroud)

如果配置DSN,则可以使用更简单的连接字符串连接到它:jdbc:odbc:[alias]示例:

jdbc:odbc:northwind
Run Code Online (Sandbox Code Playgroud)