如何将一台 PC 上的 Oracle 11g 数据库提供给另一台 PC
How to make available Oracle 11g database on one PC to another PC
我用 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!");
}
Export
数据库架构和 seed
您的数据到另一台 PC 中,一切顺利。
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 共享数据库的第一个选项,您需要考虑一些运行时环境问题。
您将需要一些方法来指定 JDBC 到 PC 或服务器 运行 数据库的连接。这涉及 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 [=39= 的 IP 地址] 数据库。
看来您还需要在主机名的开头添加 //
。
我用 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!");
}
Export
数据库架构和 seed
您的数据到另一台 PC 中,一切顺利。
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 共享数据库的第一个选项,您需要考虑一些运行时环境问题。
您将需要一些方法来指定 JDBC 到 PC 或服务器 运行 数据库的连接。这涉及 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 [=39= 的 IP 地址] 数据库。
看来您还需要在主机名的开头添加 //
。