首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从linux连接到access数据库

问从linux连接到access数据库
EN

Stack Overflow用户
提问于 2011-04-21 17:45:31
回答 5查看 32.3K关注 0票数 14

我已经创建了我的应用程序,并在windows下对其进行了测试,它可以对access DB文件进行读写。

但在现实世界中,它将在linux环境中运行,我现在有一个很大的问题,它似乎没有linux访问ms access数据库的驱动程序,下面是我如何连接的:

代码语言:javascript
复制
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;
    }

有没有人遇到过类似的情况,有没有人有建议,我能做些什么?

这是我在linux上得到的例外:

代码语言:javascript
复制
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)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-22 00:18:28

在Linux上运行应用程序访问MS access数据库或使用ODBC是很少见的。ODBC是一种windows技术。linux有一些选择,但这不是一个常见的场景。

正如您已经发现的,您的linux机器上没有访问ODBC驱动程序,因此JDBC-ODBC桥失败。您也许能够安装一个合适的ODBC驱动程序,但我不知道有哪些是免费或开源的。linux的实际ODBC选项是:

基于UnixODBC的商业访问驱动程序:

一个可以连接到Access数据库的Type4JDBC驱动程序:

我对这些都没有亲身经历。Type4JDBC驱动程序将是理想的,但我怀疑它是否像宣传的那样完美。

(我相信您是有原因的,但我想知道,如果您计划部署到Linux机器上,为什么还要使用Access数据库。我认为让Java应用程序使用Access数据库的唯一好理由是,如果它是一个现有的Access应用程序,并且具有用于Java应用程序以外的目的的自定义编程。除此之外,还有许多更好的选择。还要考虑到,如果使用Access的主要原因只是为了将Access用作用户友好的表单和报表图形用户界面工具,那么您仍然可以将数据存储在限制较少的数据库(Derby、SQLLite、MySQL、PostgreSQL、MS SQL Server等)中,然后从Access通过ODBC连接到数据库。)这将允许您在linux上部署Java应用程序,在任何最有意义的地方部署数据库,并且仍然使用Access从windows连接到数据库。我已经做过很多次了。)

票数 7
EN

Stack Overflow用户

发布于 2011-09-08 22:49:08

使用http://jackcess.sourceforge.net/

您可以使用Java从Linux或Windows读取/写入Acceess数据库。

票数 7
EN

Stack Overflow用户

发布于 2011-04-22 01:02:29

如果你坚持使用Access,但你与数据库文件的交互非常“简单”(例如,你不是在做复杂的SQL查询),你可以使用像Jackcess这样的东西。它是一个纯java库,允许您操作Access数据库,但它不提供jdbc接口,因此您必须使用Jackcess api编写代码。

(免责声明,我是一个jackcess开发人员)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5742322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档