我將如何保存一個Java程序的狀態,以便如果我不得不從dist文件夾複製它仍然可以在另一臺計算機上工作而不需要另一臺計算機有MySQL的安裝等其他方法來實現Java以外的持久化MySQL
回答
,您可以使用100個%純Java的關係數據庫,如Apache Derby,H2 Database engine或HyperSQL。從Java 6開始,SDK包含Derby,作爲JavaDB。 Java 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(); :
非常感謝你,我會考慮 – Gcairns
方法1: 如果像你沒有非常複雜的數據將保存在一個數據庫中的表,你可以使用例如簡單的配置文件。
方法2: 否則,你可以只使用sqllite數據庫。這就像一個文件中的數據庫,它不需要運行服務器。
方法3: 你可以使用一個遠程數據庫。你可以從任何地方訪問數據。 (即使沒有每次複製應用程序)
方法4: 使用「Java」數據庫,例如H2。
方法...:還有很多其他的事情可以做到!取而代之的MySQL
謝謝你的想法,看看可能會嘗試幾個,看看更適合什麼 – Gcairns
- 1. 最好的方式來實現android方向變化時的數據持久性?
- 2. 其他類的實現方法
- 3. Hazelcast文件持久化(MapStore實現)
- 4. 如何實現持久化Python列表?
- 5. java實現與其他方法的接口
- 6. 虛構的jQuery持久化方法
- 7. Wicket - 持久化和非持久JPA實體的序列化
- 8. drools持久化與mysql,無法獲得流程實例
- 9. MySQL的變化來自其他行
- 10. 用額外的方法實現Java接口實現類
- 11. Java bean持久化模式
- 12. DDD並實現持久性
- 13. Delayer持久MessageStore實現
- 14. 持久哈希表實現
- 15. 持久隊列實現
- 16. 實現透明持久性
- 17. 實現Python持久屬性
- 18. 測試持久化方法 - JUnit
- 19. 調用外部方法實際上調用其他方法
- 20. Java方法實現
- 21. java - 在多個方法調用時使變量持久化
- 22. java持久化交叉對象方法訪問
- 23. 持久化內存隊列的JPA(或其他選擇)
- 24. Java持久性,數據庫實體和其他模型之間的通信
- 25. 使用Mosquitto持久化mysql的外部數據庫
- 26. 如何在持久化實體時實現回調?
- 27. 運行java applet的調用方法(來自java,C++或其他)
- 28. java序列化 - 持久化類定義
- 29. 如何從操作方法以外的其他支持功能返回ViewModel
- 30. 其他地方出現意外錯誤
你的意思是DB的 「項目狀態」?然後:遠程數據庫,文件中的「數據庫」,使用「h2數據庫」的數據庫初始化腳本。 – Pijotrek