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



我该如何保存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。

方法…:为了实现这一点,你还可以做很多其他的事情

最新更新