在MySQL之外的其他方法来实现java中的持久性

时间:2017-10-16 12:25:09

标签: java

如何保存java程序的状态,以便如果我必须从dist文件夹中提供它仍然可以在另一台计算机上运行的副本,而不需要安装MySQL的其他计算机等等

2 个答案:

答案 0 :(得分:2)

您可以使用100%Java关系数据库,例如Apache DerbyH2 Database engineHyperSQL,而不是MySQL。从Java 6开始,SDK将Derby包含为JavaDBGetting 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。

方法......:您还可以做很多其他事情来实现这一目标!