2017-02-24 94 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文件。