我目前正在学习Java和摇摆,我正在尝试创建一个桌面应用程序
作为这个应用程序的一部分,我已经建立了一个应用程序所连接的mysql数据库,但是如果我要为其他用户分发应用程序,我不确定这将如何工作,我将如何创建一个他们是的数据库能够在他们的系统上使用,如果他们没有安装mySQL或启动数据库。
对此的帮助将非常感激。
答案 0 :(得分:1)
您应该使用嵌入式数据库。我不建议将MySQL用于商业应用程序,因为它非常昂贵。尝试使用HSQLDB - 非常快,并且没有内存泄漏(至少我没有注意到)。
这是一个实现示例:
private static Connection conn;
/**
* Gets database connection.
*
* @return the database connection.
* @throws SQLException if database error occurs.
*/
public static Connection getConnection() throws SQLException {
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection("jdbc:hsqldb:file:data", "somedb", "");
// conn.setAutoCommit(false);
}
return conn;
}
确保已将hsqldb.jar
文件添加到您的库中。
答案 1 :(得分:1)
我建议查看SQLite而不是mySQL。听起来你需要一个不需要服务器运行的独立数据库。我已经完成了Java(和Android),Swing以及C#。我发现SQLite是在不同平台上拥有数据库而不安装服务器的最佳解决方案。
答案 2 :(得分:1)
您有三种选择:
每个桌面都有自己的私有数据库。
每个桌面与一个远程数据库服务器通信。
每个桌面都与远程数据库服务器的Web前端通信。
"选项3"是最常见的情况。一个选项是"网络应用程序" (在这种情况下,您根本不需要" Swing桌面"应用程序)。另一种选择是"胖客户端Java小程序"。您可以使用Swing,大多数处理都是本地的...但您的Swing小程序将与远程数据库通信以进行数据库访问。您可以考虑使用REST界面。
如果你真的想要选项1(应用程序和数据库完全是桌面本地的),那么我肯定会选择embedded database。 Sqlite是一个很好的选择。事实上,Android使用的是Sqlite。 HSQLDB甚至MS-Access也可以是不错的选择。
答案 3 :(得分:0)
关于您的问题,我会询问您是否在应用程序的用户之间共享数据库的信息。我的意思是,如果您需要集中在一个数据库中的数据,用户可以通过桌面Swing应用程序访问。
如果是这样,那么你需要另一个提供存储在数据库中的信息的应用程序(此时你可以使用Web服务),然后你只需要实现Web服务客户端代码来与之交互您的数据库通过Swing应用程序。
现在,如果您希望每个用户拥有一个数据库的独立应用程序。然后你可以选择许多选项:
希望这可以为您提供实施所需的方向。
快乐的编码。