Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从MDB到WebApp的Java集成_Java_Ms Access_Integration - Fatal编程技术网

从MDB到WebApp的Java集成

从MDB到WebApp的Java集成,java,ms-access,integration,Java,Ms Access,Integration,我们的客户有一个基于mdb数据库(microsoft access)的客户机/服务器应用程序,他希望通过自己的网站(用java部署)公开部分数据。 实现这一目标的最佳方式是什么? 我需要一个起点(例如web服务、spring集成、mule、service mix)。您可以通过JDBC-ODBC桥用Java连接到ACCESS数据库 要做到这一点,步骤如下: 在服务器(承载Java Web应用程序的服务器)中,创建指向ACCESS文件的ODBC条目。命名它mdbodbccess 然后使用JDBC从J

我们的客户有一个基于mdb数据库(microsoft access)的客户机/服务器应用程序,他希望通过自己的网站(用java部署)公开部分数据。 实现这一目标的最佳方式是什么?
我需要一个起点(例如web服务、spring集成、mule、service mix)。

您可以通过JDBC-ODBC桥用Java连接到ACCESS数据库

要做到这一点,步骤如下:

  • 在服务器(承载Java Web应用程序的服务器)中,创建指向ACCESS文件的ODBC条目。命名它
    mdbodbccess
  • 然后使用JDBC从Java连接到该ODBC条目
  • 大概是这样的:

    //
    // points to the entry you've just created
    //
    Connection conn = DriverManager.getConnection("jdbc:odbc:mdbodbcaccess"); 
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery("select f1, f2 from table");
    while (rs.next()) {
        // iterate your resultset and do something with it
        System.out.println(rs.getString("f1"));
    }
    rs.close();
    st.close();
    conn.close();
    

    或者,您可能希望使用来自应用程序服务器的池连接。

    我相信您有点失望。 MDB是消息驱动Bean。它不是数据库。这是一种侦听JMS目的地并执行由JMS消息驱动的某些操作的方法。数据必须已保存在DB中的某个位置。如果他们使用MDB,那么它就是一个JavaEE应用程序

    现在是关于这个网站。站点使用了哪些技术?如果是基于java的技术,您的生活会更轻松,因为该站点也是一个JavaEE应用程序。在本例中,您实际上有2个JavaEE应用程序。如果所有这些都正确,你可以

  • 合并它们。在这种情况下,您可以从网站的后端调用“基于mdb的应用程序”
  • 或者,您可以从另一个应用程序调用一个应用程序。执行远程EJB调用或将一些API公开为web服务并调用它。甚至可以从站点连接到“mdb应用程序”队列并发送消息 若站点不是用Java编写的,请使用web服务或连接到队列


    一般来说,你有很多的可能性。但如果没有额外的细节,很难推荐一些具体的东西。我希望这个答案对你有所帮助。如果您需要更多帮助,请提供详细信息。

    如果web服务器当前位于您的办公局域网上,并且access前端应用程序可以使用/查看后端mdb文件所在的文件夹(我们这里指的是windows网络),然后,从理论上讲,如果web服务器的负载和使用率不会太高,您可以将其中一些数据公开给web服务器

    如果服务器不在同一办公网络上,那么一个常用的合理解决方案就是将后端数据移出访问权限,并将其移动到一些数据库服务器(如SQL server或mySQL)中。当您这样做时,access应用程序(前端部分)将继续运行并像以前一样工作。现在网站也可以共享这些数据。这种所谓的access数据升迁过程并不难做到,但您需要一名既懂SQL server又懂access的有能力的access开发人员,并且已经升迁过多次。如果开发人员多次这样做,那么在大多数情况下,将数据移出服务器并保留现有代码投资并不需要很多工作

    因此,您的选择是保持访问代码和数据库的原样,但只需将数据移出对基于服务器的系统的访问即可。如前所述,另一种选择是,如果您的web服务器连接到access数据所在的同一网络,那么从理论上讲,将access后端数据放置在与web服务器相同的服务器上是一件简单的事情。此设置将允许Office网络上的本地用户和web服务器共享和利用access后端文件中的数据

    另一种选择当然是有权连接到您在web系统上使用的数据库服务器,例如SQL server的MySQL。由于access可以以这种方式连接到数据库服务器,因此理论上也可以在预定的时间洗牌数据,甚至在使用过程中洗牌数据,以便将从网站收集的数据向下拉入access应用程序。因此,您保持访问的原样,但将其连接到收集所需数据的web部件

    上述选择中哪一个是合理的将取决于您的特定环境

    要真正改变这种组合,access for 2010可以构建可伸缩的云计算系统,其中的数据要么基于Azure SQL,要么甚至100%基于web(如果您有SharePoint)。事实上,当您现在将access数据库发布到sharepoint时,结果是.net XAML(zammel)表单和用户方面的可扩展系统。在下面的视频中,您会说我切换到完全在浏览器中运行access应用程序的中间点:


    要进行上述access web开发,您将使用SharePoint。但是,如果您的组织现在确实拥有SharePoint,那么这对您来说可能是一个合理的可能性。

    我认为OP将MDB称为Microsoft DB(又名Access的扩展)。确切地说,我的意思是Microsoft扩展。这个答案应该删除,因为它对这个问题的解释完全是错误的。伙计们,如果我对这个问题的解释不正确,我很抱歉。但莫里齐奥应该考虑如何在特定的语境中使用首字母缩略词。问题的目标是“java”。在此上下文中,MDB是消息驱动Bean,而不是来自Microsoft的东西。而且据我所知,微软有两个数据库:SQL server和Access。我不知道原来的问题没有MS-ACCESS标签。这当然会让人困惑,但最初的问题确实包含了短语“mdb数据库”,如果你用谷歌搜索这个短语,你会发现很明显,它会让你很快访问/Jet/ACE。使用文件扩展名作为数据格式并不是最好的表达方式,但它是一种广泛使用的格式,大多数人认为MDB指的是Jet数据库文件。我在这里看不到这个答案的任何价值,尽管其中的信息可能是正确的。谢谢你的回复,但我已经知道如何连接到