我有一个MySQL数据库,里面有一些表和记录。我编写了一个Java应用程序,在开发过程中使用了MySQL数据库。现在,自开发完成以来,我希望将我的程序的可执行JAR与Derby Embedded数据库一起制作。
我在网上看到一个名为SQuirrel SQL的工具能够将MySQL数据库复制并转换为Derby数据库,并将数据类型转换为正确的数据类型。所以现在我已经能够使用SQuirrel SQL GUI将MySQL表复制到Derby数据库。但是,我不知道如何在Java应用程序中访问此数据。
在这里,您可以找到SQuirrel SQL中Alias的屏幕截图。我一直在我的电脑上查看这些文件的存储位置,但是还没找到它们......
有人可以解释一下这是如何工作的,以及如何在我的Java应用程序中正确访问Derby数据库?我在我的项目中导入了所有必需的Derby jar,并编写了一个小型测试类,用于创建表,插入数据并将其读回。这一切都很完美。
public static final String URL = "jdbc:derby:";
public static final String USER = "root";
public static final String PASSWORD = "root";
public static final String DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver";
// private constructor
private ConnectionFactory() {
try {
startNetworkServerControl();
Class.forName(DRIVER_CLASS).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
private Connection createConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:derby:AppleDB;create=true", USER, PASSWORD);
} catch (SQLException e) {
System.out.println("ERROR: Unable to Connect to Database.");
}
return connection;
}
答案 0 :(得分:1)
由于您将数据库指定为" AppleDB",没有完整的绝对路径名,因此在运行时它存储在SquirrelSQL主目录中名为AppleDB的文件夹中。
在您的硬盘中搜索名为AppleDB的文件夹,您将找到您的数据库。
如果您愿意,可以将其移动到更合适的位置(只需重命名文件夹),然后更新JDBC连接URL以指定文件夹的完整绝对路径名称,这样您就不会失去跟踪它的未来。
在Java程序中,您只需在运行Java程序的当前目录中,在硬盘上的另一个文件夹中创建名为AppleDB的另一个数据库。由于该程序不包含您使用Squirrel导入的数据,因此您可以丢弃该文件夹(将其放入废纸篓)。
如果你没有指定&#34 ;; create = true"在您的JDBC连接URL中,Derby不会自动创建新数据库,但如果您在尝试打开数据库时指定了错误的数据库路径,则会向您显示错误消息。