我该如何保存java程序的状态,以便如果我必须从dist文件夹中提供副本,它仍然可以在另一台计算机上工作,而不需要安装MySQL等其他计算机
您可以使用100%Java关系数据库,如Apache Derby、H2数据库引擎或HyperSQL,而不是MySQL。从Java6开始,SDK将Derby作为JavaDB包含在内。Java DB 10(JDK 8)文档中有一个《入门指南》。
您可以在项目中包含.jar
文件,并使用JDBC连接使用数据库,而无需安装任何其他软件。Glassfish和JBoss等应用程序服务器默认使用Derby和H2作为示例数据库和JMS消息。通常,管理员会在生产中更改数据库(使用不同的JDBC URL连接)。
关于使用JavaDb或Derby的说明
Derby(和JavaDB)可以作为网络服务器或嵌入式服务器运行。网络服务器允许来自多个用户/程序的连接。嵌入式服务器仅适用于启动引擎的应用程序。两种服务器类型都包含在.jar
文件中,您可以使用JDBC和库API来控制它们。
-
对于网络服务器,您必须启动服务器并使用JDBC URL连接(如
jdbc:derby://localhost:1527/dbname;create=true
),其中定义了端口和数据库,或者使用连接(如jdbc:derby://localhost:1527/c:tempmyDatabase;create=true
),其中包含数据库的位置。您可以查看Apache Derby 的Vogela教程// 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(); :
-
对于嵌入式服务器,必须使用不同的JDBC驱动程序和URL。Connection URL类似于
jdbc:derby:MyDbTest;create=true
,不包括端口。在Derby的文档中有一个解释。// use the Embedded Derby JDBC driver Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); // connect to the database Connection connect = DriverManager .getConnection("jdbc:derby:MyDBTest;create=true"); // execute a Query PreparedStatement statement = connect .prepareStatement("SELECT * from USERS"); ResultSet resultSet = statement.executeQuery(); :
方法1:如果没有像保存在数据库表中那样非常复杂的数据,可以使用简单的配置文件。
方法2:否则,您可以使用sqllite数据库。这就像一个文件中的数据库,不需要服务器来运行。
方法3:您可以使用远程数据库。您可以从任何地方访问数据。(即使每次都不复制应用程序)
方法4:使用"Java"数据库,例如H2。
方法…:为了实现这一点,你还可以做很多其他的事情