通过 UCanAccess 连接到系统 DSN
Connect to a System DSN via UCanAccess
我目前正在将项目从 Java 7 升级到 Java 8,因此我从使用 JDBC-ODBC Bridge 切换到使用 UCanAccess。我要连接的数据库注册为系统 DSN,所以我这样连接它:
Database.forURL("jdbc:odbc:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "sun.jdbc.odbc.JdbcOdbcDriver")
现在我将其更改为
Database.forURL("jdbc:ucanaccess:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "net.ucanaccess.jdbc.UcanaccessDriver")
但这给了我错误:
Driver net.ucanaccess.jdbc.UcanaccessDriver does not know how to handle URL jdbc:ucanaccess:MyDB;DB_CLOSE_DELAY=-1;charSet=Cp1250
有没有办法通过 UCanAccess 访问 DSN?
Is there a way to access a DSN via UCanAccess?
不直接。 UCanAccess 是一个不使用 ODBC 的 JDBC 驱动程序,因此它不了解 ODBC DSN。
您的 UCanAccess 连接字符串需要包含 Access 数据库文件的路径,例如,
jdbc:ucanaccess://C:/path/to/mydata.accdb
如有必要,您可以从 ODBC DSN 的配置信息中检索该文件路径。在 Windows,名为 MyDB
的系统 DSN 的信息将在 Windows 注册表中
下
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb
或者
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\MyDb
我目前正在将项目从 Java 7 升级到 Java 8,因此我从使用 JDBC-ODBC Bridge 切换到使用 UCanAccess。我要连接的数据库注册为系统 DSN,所以我这样连接它:
Database.forURL("jdbc:odbc:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "sun.jdbc.odbc.JdbcOdbcDriver")
现在我将其更改为
Database.forURL("jdbc:ucanaccess:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "net.ucanaccess.jdbc.UcanaccessDriver")
但这给了我错误:
Driver net.ucanaccess.jdbc.UcanaccessDriver does not know how to handle URL jdbc:ucanaccess:MyDB;DB_CLOSE_DELAY=-1;charSet=Cp1250
有没有办法通过 UCanAccess 访问 DSN?
Is there a way to access a DSN via UCanAccess?
不直接。 UCanAccess 是一个不使用 ODBC 的 JDBC 驱动程序,因此它不了解 ODBC DSN。
您的 UCanAccess 连接字符串需要包含 Access 数据库文件的路径,例如,
jdbc:ucanaccess://C:/path/to/mydata.accdb
如有必要,您可以从 ODBC DSN 的配置信息中检索该文件路径。在 Windows,名为 MyDB
的系统 DSN 的信息将在 Windows 注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb
或者
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\MyDb