Lon*_*don 14 java linux ms-access
我已经创建了我的应用程序并在Windows下进行了测试,它在访问DB文件中写入/读取.
但是在现实世界中,它将在linux环境中运行,现在我有一个大问题,似乎没有驱动程序可以让linux访问ms acess db,这里是我现在建立连接的方式:
private static Connection getConnection() {
if (connection == null) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + configuration.getAccessDbFile();
connection = DriverManager.getConnection(conStr);
} catch (Exception e) {
e.printStackTrace();
}
}
return connection;
}
Run Code Online (Sandbox Code Playgroud)
有没有人遇到类似的事情,有人有建议我该怎么办?
这是我在linux上的例外:
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
Run Code Online (Sandbox Code Playgroud)
在Linux上运行的应用程序访问MS Access数据库或使用ODBC的情况并不常见.ODBC是一种Windows技术.Linux有一些选项,但这不是常见的情况.
正如您所发现的,Linux机器上没有Access ODBC驱动程序,因此JDBC-ODBC桥接器失败.您可能能够安装合适的ODBC驱动程序,但我不知道任何免费或开源的驱动程序.linux的defacto ODBC选项是:
基于UnixODBC的Access的商业驱动程序:
可以连接到Access数据库的类型4 JDBC驱动程序:
我没有任何这些经验.4型JDBC驱动程序将是理想的,但我怀疑它的工作方式与宣传的一样完美.
(我确信你有理由,但是如果你计划部署到Linux机器,我不得不想知道你为什么要使用Access数据库.我相信让Java应用程序使用Access数据库的唯一理由是它是否是现有的Access使用自定义编程的应用程序用于Java应用程序以外的目的.否则,有许多更好的选项.还要考虑如果您使用Access的主要原因是这样您可以使用Access作为用户友好的GUI工具进行表单和报告,您仍然可以将数据存储在限制较少的数据库(Derby,SQLLite,MySQL,PostgreSQL,MS SQL Server等)中,然后通过ODBC从Access连接到数据库.)这将允许您在Linux上部署Java应用程序,数据库最有意义的地方,仍然使用Access从Windows连接到数据库.我这样做了很多次.)
| 归档时间: |
|
| 查看次数: |
29414 次 |
| 最近记录: |