【问题标题】:How to make available Oracle 11g database on one PC to another PC如何将一台 PC 上的 Oracle 11g 数据库提供给另一台 PC
【发布时间】:2015-08-19 00:09:28
【问题描述】:

我使用 Oracle 11g 的数据库表创建了一个 Java Eclipse 应用程序。它工作正常,但只在我的本地电脑上。我怎样才能让这些表在另一台电脑上工作?也许我必须将它们放在应用程序文件夹中?应用通过 JDBC 连接器与数据库连接。

连接逻辑如下:

try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch (ClassNotFoundException e) {
    System.out.println("Unable to load the driver class!");
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "system";
String password = "xxxxpw";
Connection connection = null;
try {
    connection = DriverManager.getConnection(url, user, password);
    System.out.println("Connection succeed!!");
}
catch (SQLException e) {
    System.out.println("Couldn't take connection!");
} 

【问题讨论】:

  • Oracle 数据库服务器在哪里运行? “将表格放入应用程序文件夹”是什么意思?这些表驻留在数据库中,而不是某个文件夹中(当然,除非它们实际上不是数据库表,而是例如转储文件、从表创建的 csv 文件或其他什么?
  • oracle 数据库在我的本地电脑中运行。是的,这些表位于 db 中,而不是任何其他文件夹中。
  • 只是猜测,但是您是否将 JDBC 连接配置为使用 127.0.0.1 或 localhost 作为数据库地址?如果是这样,请将其替换为您机器的外部地址。

标签: java jdbc oracle11g


【解决方案1】:

Oracle 11g 和 Oracle 11g 的替代品确实有两种选择。

第一种方法是使用您的 PC 或其他 PC 作为数据库主机,并让您的应用程序的任何其他实例引用您在该数据库主机上的数据库。这可能需要更改 JDBC 连接以指定主机所在的位置,并且可能需要根据您的环境解决一些其他问题。请参阅下面的简要讨论。

第二个是在将运行您的应用程序的每台 PC 上复制数据库。这需要在每台 PC 上安装 Oracle 11g,然后将您 PC 上的数据库复制到另一台 PC。见What is the easiest way to transfer Oracle database from one PC to another?

第三种选择是将数据库引擎更改为 SQLite 之类的东西,它使用一个或多个文件,以便于复制。看看Java and SQLite 的一些答案。

关于 Oracle 11g 共享数据库的第一个选项,您需要考虑一些运行时环境问题。

您将需要某种方式来指定与运行数据库的 PC 或服务器的 JDBC 连接。这涉及到 PC 的目录查找、您的环境是否具有固定 IP 地址以及使用您的应用程序的设备的移动性。防火墙也可以阻止连接。

查看您的连接字符串逻辑后,如果您要在特定 PC 上托管数据库,您将需要 PC 的主机名或者您需要 PC 的 IP 地址(请参阅Java JDBC - How to connect to Oracle using Service Name instead of SID,其中提供了一些示例连接字符串及其格式)。

在您的连接字符串中,服务器名称localhost 是运行您的应用程序的PC。因此,如果您使用该连接字符串移动您的应用程序,那么在它被移动到的 PC 上运行该应用程序将使该应用程序在该 PC 上查找 Oracle 11g 数据库引擎和数据库。

因此,您需要将localhost 更改为装有Oracle 11g 数据库的PC 的主机名,或者您需要将localhost 更改为运行数据库的PC 的IP 地址。

您还需要在主机名的开头添加//

【讨论】:

  • 你知道如何使用 ip 设置为 jdbc,我的电脑的 ip 吗?
  • @grlouk,请使用用于打开数据库连接的源代码行更新您的问题,显示getConnection() 逻辑,以便我们可以看到您在做什么。
  • 尝试 { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { System.out.println("无法加载驱动类!"); } 字符串 url = "jdbc:oracle:thin:@localhost:1521:xe";字符串用户=“系统”;字符串密码 = "vertigo1321993";连接连接 = null;尝试 { 连接 = DriverManager.getConnection(url, 用户, 密码); System.out.println("连接成功!!"); } catch (SQLException e) { System.out.println("无法连接!"); }
【解决方案2】:

Export DB 架构和seed 将您的数据导入另一台 PC,您就可以开始了。

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多