从MDB到WebApp的Java集成

时间:2010-12-11 11:48:53

标签: java ms-access integration

我们的客户有一个基于mdb数据库(微软访问)的客户端/服务器应用程序,他希望通过他的网站(部署在java中)公开部分数据。 实现它的最佳方法是什么? 我需要一个可以开始的地方(例如网络服务,弹簧集成,骡子,服务组合)。

3 个答案:

答案 0 :(得分:2)

如果Web服务器当前位于您的办公室LAN上,并且访问前端应用程序可以使用/查看后端mdb文件所在的文件夹(我们在这里谈论Windows网络),那么理论上您可以公开如果Web服务器的负载和使用率不会太高,那么这些数据中的一部分会出现在Web服务器上。

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

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

另一种选择当然是访问连接到您在Web系统上使用的数据库服务器,例如SQL服务器的MySQL。由于访问可以以这种方式连接到数据库服务器,因此理论上可以在预定时间或甚至在使用期间将数据从网站收集的数据下拉到访问应用程序中来混洗数据。因此,您按原样保留Access,但将其连接到收集所需数据的Web部件。

上述哪种替代选择有意义取决于您的具体情况。

要想真正摆脱这种混合,2010年的访问可以构建可扩展的云计算系统,其中数据基于Azure SQL,如果您拥有SharePoint,甚至可以基于100%基于Web。实际上,当您将访问数据库发布到sharepoint时,结果是.net XAML(zammel)表单和用户方面的可伸缩系统。在下面的视频中,您将说明我完全在浏览器中切换到运行访问应用程序的中途点:

http://www.youtube.com/watch?v=AU4mH0jPntI

要执行上述访问Web开发,您将使用SharePoint。但是,如果您的组织现在拥有SharePoint,那么这对您来说是合理的可能性。

答案 1 :(得分:0)

您可以通过JDBC-ODBC Bridge使用Java连接到您的ACCESS数据库。

执行此操作的步骤如下:

  1. 在您的服务器(托管Java Web应用程序的服务器)中创建一个指向您的ACCESS文件的ODBC条目。将其命名为mdbodbcaccess
  2. 然后使用JDBC从Java连接到该ODBC条目。
  3. 这样的事情:

    //
    // 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();
    

    或者,您可能希望使用Application Server中的池连接。

答案 2 :(得分:0)

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

现在关于该网站。哪些技术用于网站?如果它是基于Java的技术,那么您的生活将更加轻松,因为该站点也是Java EE应用程序。在这种情况下,您实际上有2个Java EE应用程序。如果所有这些都正确可以

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

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