我使用Oracle 11g中的数据库表创建了一个Java Eclipse应用程序。它工作正常,但只能在我的本地电脑。如何让这些表适用于另一台PC?也许我必须将它们放在应用程序文件夹中?该应用程序通过JDBC Connector与db连接。
连接逻辑如下:
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!");
}
答案 0 :(得分: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地址。
看起来您还需要将//
添加到主机名的开头。
答案 1 :(得分:0)
Export
数据库架构和seed
您的数据进入另一台PC,您就可以了。