2017-10-16 99 views
0

我将如何保存一个Java程序的状态,以便如果我不得不从dist文件夹复制它仍然可以在另一台计算机上工作而不需要另一台计算机有MySQL的安装等其他方法来实现Java以外的持久化MySQL

+0

你的意思是DB的 “项目状态”?然后:远程数据库,文件中的“数据库”,使用“h2数据库”的数据库初始化脚本。 – Pijotrek

回答

2

,您可以使用100个%纯Java的关系数据库,如Apache DerbyH2 Database engineHyperSQL。从Java 6开始,SDK包含Derby,作为JavaDBJava DB 10 (JDK 8) documentation中有Getting Started Guide

您可以将.jar文件包含在您的项目中,并使用JDBC连接使用数据库,而无需安装任何其他软件。应用程序服务器(如Glassfish和JBoss)默认使用Derby和H2作为示例数据库和JMS消息。通常,管理员在生产中更改该数据库(使用不同的JDBC URL连接)。


使用注意事项JavaDB之外或Derby

德比(和JavaDB之外)可以作为network server or an embedded one运行。 网络服务器允许来自多个用户/程序的连接。一个嵌入式服务器只适用于启动引擎的应用程序。这两种服务器类型都包含在.jar文件中,您可以使用JDBC和库API来控制它们。

  • 对于网络服务器,则必须启动服务器,并使用像jdbc:derby://localhost:1527/dbname;create=true一个JDBC URL连接,其中一个端口和一个数据库中定义或如jdbc:derby://localhost:1527/c:\temp\myDatabase;create=true与数据库的位置的连接。您可以检查Vogella's tutorial for Apache Derby

    // 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与jdbc:derby:MyDbTest;create=true类似,不包含端口。有一个解释在Derby's documentation

    // 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(); 
         : 
    
+0

非常感谢你,我会考虑 – Gcairns

0

方法1: 如果像你没有非常复杂的数据将保存在一个数据库中的表,你可以使用例如简单的配置文件

方法2: 否则,你可以只使用sqllite数据库。这就像一个文件中的数据库,它不需要运行服务器。

方法3: 你可以使用一个远程数据库。你可以从任何地方访问数据。 (即使没有每次复制应用程序)

方法4: 使用“Java”数据库,例如H2。

方法...:还有很多其他的事情可以做到!取而代之的MySQL

+0

谢谢你的想法,看看可能会尝试几个,看看更适合什么 – Gcairns