2017-02-24 57 views
-1

我有一個java項目。它使用MySQL數據庫事務。我會在另一臺電腦上運行這個java項目。我會做一個設置。在此設置中需要導入數據文件.sql。但MySQL必須是。我不會在另一臺計算機上安裝MySQL。我會把MySQL服務器文件放入安裝程序中。運行MySQL而不安裝它

我該怎麼辦?

+0

請編輯您的問題以提供更多信息。你的用戶(運行你的安裝程序的用戶)會使用他們自己的MySQL服務器來運行你的Java程序嗎?幾個用戶可以共享相同的MySQL服務器嗎? MySQL服務器是否總是與Java程序位於不同的機器上? –

回答

1

而是使用本地主機連接像這樣:

Connection connection = DriverManager.getConnection(
        "jdbc:somedb://localhost/databasename", "username", "password"); 

您可以使用其他計算機或服務器例如10.6.99.122的@IP,所以這可以解決你的問題,而不是需要安裝或進口在其他電腦上的SQL文件:

Connection connection = DriverManager.getConnection(
        "jdbc:somedb://10.6.99.122/databasename", "username", "password"); 

編輯

您可以瞭解更多關於此嵌入式數據庫Java, MySQL: Is there a way to embed a MySQL server with a Java program?這裏Embedding mysql in java desktop applicationhere

+0

還有別的辦法嗎?我不想改變程序代碼。 –

+0

如果你正在使用mysql或任何DBMS女巫不嵌入數據庫https://en.wikipedia.org/wiki/Embedded_database,所以我害怕這是不可能的@SOFJMP –

+0

是的,我使用MySQL。 @YCF_L –

0

您既可以使用外部連接和主機數據庫的虛擬主機,或者如果你不需要共享數據和數據本地存儲並由用戶自己生成,那麼您可以使用sqlite文件代替。 你的問題應該解釋更多關於數據類型以及如何使用,以便我們給你最好的解決方案。

+0

我不會使用sqlite。 –

0

如果您希望您的客戶在他們的計算機上運行您的Java程序並將其連接到他們的MySQL服務器,您必須必須將您的數據庫連接字符串放入Java屬性文件中。 你別無選擇。您必須允許您的客戶設置自己的連接字符串值。

連接字符串用於建立新的JDBC連接。他們通常是這個樣子:

jdbc:mysql://mysql1.datacenter.example.com:3306/sofjmp?user=username&password=xxxxxsx 

您可以包括您在屬性存儲文件中的連接字符串中的用戶的數據庫用戶名和密碼的祕密。這爲客戶提供了一種指定他們自己的數據庫憑證的方法。

您的安裝程序應該包含有關用戶關於設置連接字符串屬性的說明。你也可以在你的安裝程序中包含你的.sql文件和你的表格定義。您可以指導客戶在第一次設置程序時運行.sql文件。