1

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

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

我的客户希望本地文件/数据库可以离线存储在程序文件夹中

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

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

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

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

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

4

2 回答 2

1

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

于 2012-09-15T10:39:19.873 回答
0

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

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

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

对于 Excel 输出,我同意 Chris 的观点,POi 是要走的路。但是,还有一个名为jXLS的库,它是 POI 之上的一个层,它大大简化了格式化 XLS 工作表的创建,查看这个将 JDBC 结果集(查询 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));
}

第二步:遍历得到的表列表,进行如上图的表复制

于 2012-09-15T10:44:39.457 回答