如何保存java程序的状态,以便如果我必须从dist文件夹中提供它仍然可以在另一台计算机上运行的副本,而不需要安装MySQL的其他计算机等等
答案 0 :(得分:2)
您可以使用100%Java关系数据库,例如Apache Derby,H2 Database engine或HyperSQL,而不是MySQL。从Java 6开始,SDK将Derby包含为JavaDB。 Getting Started Guide中有一个Java DB 10 (JDK 8) documentation。
您可以在项目中包含.jar
文件,并使用JDBC连接使用数据库,而无需安装任何其他软件。默认情况下,Glassfish和JBoss等应用程序服务器使用Derby和H2作为示例数据库和JMS消息。通常,管理员在生产中更改这些数据库(使用不同的JDBC URL连接)。
使用JavaDb或Derby的注意事项
Derby(和JavaDB)可以作为network server or an embedded one运行。 网络服务器允许来自多个用户/程序的连接。 嵌入式服务器仅适用于启动引擎的应用程序。这两种服务器类型都包含在.jar
文件中,您可以使用JDBC和库API来控制它们。
对于网络服务器,您必须启动服务器并使用诸如jdbc:derby://localhost:1527/dbname;create=true
之类的JDBC URL连接(其中定义了端口和数据库)或连接(例如{{ 1}}与数据库的位置。您可以查看Vogella's tutorial for Apache Derby
jdbc:derby://localhost:1527/c:\temp\myDatabase;create=true
对于嵌入式服务器,您必须使用其他JDBC驱动程序和URL。连接URL类似于// use the Derby JDBC driver
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
// connect to the database
Connection connect = DriverManager
.getConnection("jdbc:derby://localhost/c:/temp/db/FAQ/db");
// execute a Query
PreparedStatement statement = connect
.prepareStatement("SELECT * from USERS");
ResultSet resultSet = statement.executeQuery();
:
,不包含端口。 Derby's documentation中有一个解释。
jdbc:derby:MyDbTest;create=true
答案 1 :(得分:0)
方法1: 如果没有像将数据保存在数据库表中那样非常复杂的数据,则可以使用简单的 配置文件 。
方法2: 否则,您可以使用 sqllite数据库 。这就像单个文件中的数据库,不需要运行服务器。
方法3: 您可以使用 远程数据库 。您可以从任何地方访问数据。 (即使没有每次都复制应用程序)
方法4: 使用“Java”数据库,例如H2。
方法......:您还可以做很多其他事情来实现这一目标!