gpt4 book ai didi

java - 每次将软件分发给新用户时都手动为软件创建新数据库?

转载 作者:行者123 更新时间:2023-11-29 07:37:56 25 4
gpt4 key购买 nike

我使用java制作了一个基于桌面的商店管理软件,它将通过互联网(phpmyadmin)将特定商店的每个产品详细信息和销售历史记录保存在数据库中。我创建了一个连接器类,并给出了连接到数据库的数据库名称的路径。问题是,对于每个不同的商店,我需要创建一个不同的数据库。如果我制作软件的 .exe 文件或安装文件并将其分发给用户,我将如何通过安装过程为每个用户(在本例中为每个商店)创建不同的数据库。有什么方法可以动态地执行此操作,或者我每次都必须在将其分发给新用户(实际上是新商店)之前创建数据库?

提前致谢,我从来没有制作过用于商业分发的软件。这对我来说是新的。

注1:让我详细解释一下我的问题,首先看一下我的连接器类

public class ispConnect {
static Connection connection;

public static Connection connecterDb(){
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://ServeName/DatabaseName","root","");
System.out.println("Connection Established!");
return connection;
}catch(Exception e){
System.out.print("Connection Failed!");
return null;
}
}

这是与数据库“DatabaseName”连接的连接器类。现在,如果我制作安装程序文件,我无法更改“DatabaseName”。假设我有两个客户 X、Y,他们都需要我的应用程序。对于他们两个,我需要创建两个数据库名称 - 让 DatabaseName1 代表 X,DatabaseName2 代表 Y,否则他们的数据将保存到同一个数据库中 - “DatabaseName”。现在我的问题是,我是否必须每次都为每个客户手动更改数据库名称,然后在将我的应用程序交付给他们之前再次制作安装程序,或者还有其他选项可以做到这一点!

最佳答案

是的,可以动态创建数据库。 SQL 语言允许这样做,您可以使用 java 调用 SQL 表达式。

在 SQL 中创建数据库 MyDatabase 您需要调用:

CREATE DATABASE MyDatabase

在java中你可以用下面的代码来做到这一点:

Connection conn = DriverManager.getConnection("jdbc:mysql://databasehost/?user=root&password=rootpassword"); 
Statement statement = conn.createStatement();
int result=statement.executeUpdate("CREATE DATABASE MyDatabase");

请注意,SQL 是一种功能强大的语言,您还可以添加/删除用户、授予/撤销访问权限等。您还可以使用 Java 代码调用 SQL 表达式。

检查此链接以获取 MySQL SQL 引用:http://dev.mysql.com/doc/refman/5.6/en/sql-syntax.html

<小时/>

更新 1:

请注意,databasehostroot 用户名和密码不应进行硬编码。您的应用程序应在首次启动时询问此信息,以生成数据库。

<小时/> 更新 2:

如果您为应用程序的客户提供 MySQL 服务器基础设施,并且不要求客户在其计算机上部署和使用单独的独立 MySQL 实例,那么您需要采取一些不同的方法。

出售您的应用程序的许可证后,使用客户提供的信息自动生成(例如使用 PHP)MySQL 数据库。之后,向您的客户提供用户名/密码和数据库名称以访问您的服务器。

当您的应用程序启动时,它会要求提供这些数据库名称、用户名/密码,客户在启动时指定此信息并开始使用您的产品。

作为提供更多便利的选项,当您生成服务器数据库、用户名和密码时,将此信息保存在(加密的)设置文件中,并将其与应用程序一起提供,客户将下载。

<小时/> 更新 3

不要将数据库名称、登录名和密码硬编码到您的 Java 代码中。声明变量:

String dbName;
String username;
String password;

并使用这些变量连接到您的数据库,如下所示:

connection = DriverManager.getConnection("jdbc:mysql://ServeName/" + dbName, username, password);

将 dbName、用户名和密码存储在 separate text file 中,然后让你的java代码为 read this text file ,填充 dbNameusernamepassword 变量。

当用户要下载购买的软件时,您可以生成此文本文件(也称为 Java Properties file )。在服务器端,您应该使用 PHP 生成数据库、用户名和密码,并将这些信息(dbName、用户名和密码)写入文本文件。

您可以使用 PHP 创建并填充文本文件。这是教程: http://www.w3schools.com/php/php_file_create.asp

创建文本文件后,您可以将其与 exe 文件一起压缩,也使用 PHP,这里是简短的操作方法:Creating .zip file

希望这有帮助:)

关于java - 每次将软件分发给新用户时都手动为软件创建新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com