Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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
Java 如何存储Oracle数据库并将其转换为msaccess/excel_Java_Oracle_Excel_Ms Access_Offline - Fatal编程技术网

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

Java 如何存储Oracle数据库并将其转换为msaccess/excel,java,oracle,excel,ms-access,offline,Java,Oracle,Excel,Ms Access,Offline,我有个问题,我的一个客户需要 连接到oracle数据库服务器,并将表下载/存储到本地文件(例如microsoft access)的程序,如转换 之后,客户端可以输入一个excel文件,并将其添加到该本地文件中 我的客户希望本地文件/数据库可以脱机存储在程序文件夹中 他们希望程序完成所有的工作,所以他们只给我一个用户&传递给他们的数据库,其中包含一些表格示例和将从客户端输入的excel 程序将完成剩下的工作,下载标签,转换,输入,最后打印数据 我知道很多教程都有这样的想法:使用java(使用OLD

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

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

我的客户希望本地文件/数据库可以脱机存储在程序文件夹中 他们希望程序完成所有的工作,所以他们只给我一个用户&传递给他们的数据库,其中包含一些表格示例和将从客户端输入的excel

程序将完成剩下的工作,下载标签,转换,输入,最后打印数据

我知道很多教程都有这样的想法:使用java(使用OLDBC-JDBC)连接/更新oracle,或者打开并修改msaccess文件(使用excel转换)

但是要将它们结合起来呢?如何在java中做到这一点

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

供参考: 数据是一个很大的数据,使用了大约60万行
而且它每月更新一次

如果只需要数据,为什么不将其作为excel下载,这样可以很容易地使用excel进行渲染?甚至excel也可以用作数据源(而不是MS Access)。您是否只需要将其转换为MS Access?请添加有关您的问题陈述的更多信息。

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

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

Database.open(new File("my.mdb")).copyTable("Imported", resultSet);
我对那个图书馆没有第一手的经验,但它看起来相当不错

对于Excel输出,我同意Chris的观点,POi是一个不错的选择。不过,还有一个名为的库,它是POI之上的一个层,它大大简化了格式化XLS工作表的创建,请查看将JDBC结果集(查询Oracle的结果)转换为外观良好的Excel文件的功能

编辑:根据你对Chris答案的评论,如果你得到的只是db坐标和用户和通行证,你必须:

步骤1:使用以下示意图获取表名:

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:迭代获得的表列表并执行如上所示的表复制

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

Database.open(new File("my.mdb")).copyTable("Imported", resultSet);
我对那个图书馆没有第一手的经验,但它看起来相当不错

对于Excel输出,我同意Chris的观点,POi是一个不错的选择。不过,还有一个名为的库,它是POI之上的一个层,它大大简化了格式化XLS工作表的创建,请查看将JDBC结果集(查询Oracle的结果)转换为外观良好的Excel文件的功能

编辑:根据你对Chris答案的评论,如果你得到的只是db坐标和用户和通行证,你必须:

步骤1:使用以下示意图获取表名:

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:迭代获得的表列表并执行如上所示的表复制

客户希望程序完成所有工作,他们只给我一个用户并传递到他们的数据库,程序将完成其余工作下载选项卡、转换、输入,最后它将打印data@user115343我的意思是,
client
是否希望它仅作为MS访问?或者Excel也是可以接受的?可以接受,就像标题中说的他们只想要的一样,无论它是什么(文件),它都可以修改并可以传输到可移动媒体,比如flashdisk msaccess只能从其他人处访问(VB6),但如何从JAVA下载oracle数据库并另存为Excel?谢谢客户希望程序完成所有的工作,他们只给我一个用户&传递到他们的数据库,程序将完成其余的工作下载选项卡,转换,输入,最后它将打印data@user115343我的意思是,
client
是否希望它只作为MS访问?或者Excel也是可以接受的?可以接受,就像标题中说的他们只想要的一样,无论它是什么(文件),它都可以修改并可以传输到可移动媒体,比如flashdisk msaccess只能从其他人处访问(VB6),但如何从JAVA下载oracle数据库并另存为Excel?谢谢你,天哪,我一分钟前真的没有希望了,但就像我向chris提出的问题一样,如何将oracle表格直接下载到excel(.xls)文件中?感谢you@user115343我现在很困惑,你想要MDB还是XLS,还是两者都要?检查我的编辑,现在它还显示了如何提取db元数据以获取表列表-您不想在程序中硬编码要复制的表列表。因此,就像我执行从oracle到java数据源的表复制,它将转换为excel一样?仅供参考,数据很大,大约有1000条,上面提到的VB6家伙,在这一条中失败了。很抱歉,我的回复太晚了,这是由于连接速度慢造成的。我只需要一个文件,不管是MDB还是XLS,只要它能存储数据1000条记录?还是一千张桌子?如果是1000个表格,Excel可能不是合适的容器-当您有10000行时,POI会变得非常慢,但当有100或1000行时,POI会非常快。根据第一手经验,我可以向您保证1000行就可以了-别忘了检查jXLS,在这里,您需要对该库执行的操作非常简单—假设您知道表结构。如果不是的话,你就必须直接使用POI.omg,我一分钟前真的没有希望了,但就像我问chris的问题一样,你怎么能直接将oracle表下载到