如何存储Oracle数据库并将其转换为ms access / excel

时间:2012-09-15 10:34:22

标签: java oracle excel ms-access offline

我有一个问题,我的一个客户需要

一个程序,它将连接到oracle数据库服务器,并下载/存储该表到本地文件(例如,微软访问),就像转换一样 之后,客户端可以输入一个excel文件,它将被添加到该本地文件

我的客户希望本地文件/数据库可以存储离线,在程序文件夹中 他们希望程序完成所有工作,因此他们只给我一个用户并通过一些表格和将从客户端输入的excel传递给他们的数据库

并且程序将完成其余的下载表格,转换,输入,最后它将打印数据

我知道许多教程都带有连接/更新oracle与java(使用OLDBC-JDBC)或打开和修改msaccess文件(使用excel转换)的想法

但要将它们全部组合起来?你怎么能在java中做到这一点?

我已经看到有人这样做,但在VB6中 而他的代码有点凌乱

供参考: 数据是 BIG ,数据使用大约600.000行 它每月更新一次

2 个答案:

答案 0 :(得分:1)

如果只需要数据,为什么不将它下载为excel,可以使用Apache POI轻松渲染?甚至excel也可以作为数据源(不是MS-Access)。您的要求是仅将其转换为MS-Access吗?请添加有关问题陈述的更多信息。

答案 1 :(得分:0)

如果所需的输出是MS Access,您可能想要探索的方法是Jackcess。他们在他们的网页上给出的一个示例是将外部表复制到MS Access中,这就是您似乎需要的所有代码:

Database.open(new File("my.mdb")).copyTable("Imported", resultSet);

我没有该库的第一手经验,但它看起来很不错。

对于Excel输出我同意Chris,POi是要走的路。但是,还有一个名为jXLS的库,它是POI之上的一个层,它简化了格式化XLS表的创建,查看转换JDBC结果集的this sample(查询结果) Oracle)成为一个看起来很漂亮的Excel文件。

编辑:基于你对克里斯回答的评论,如果实际上你得到的是数据库坐标和用户并通过,你将不得不:

第1步:使用DatabaseMetaData获取表格名称,如下所示:

Connection c = DriverManager.getConnection (...);
DatabaseMetaData md = c.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
  System.out.println(rs.getString(3));
}

步骤2:迭代获得的表列表并执行如上所示的表副本