分布式Java桌面应用程序mySQL数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式Java桌面应用程序mySQL数据库相关的知识,希望对你有一定的参考价值。

我目前正在学习Java和swing,正在尝试创建一个桌面应用程序。作为此应用程序的一部分,我已经建立了一个与应用程序连接的mysql数据库,但是我不确定如果要为其他用户分发该应用程序,该数据库将如何工作,如何创建他们所使用的数据库如果未安装mySQL或未启动数据库,则可以在其系统上使用。帮助将不胜感激。

答案

您应该使用嵌入式数据库。我不建议将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文件添加到库中。

另一答案

我建议查看SQLite而不是mySQL。听起来您需要一个不需要服务器即可运行的独立数据库。我已经完成了Java(和android),Swing以及C#的开发。我发现SQLite是在不同平台上拥有数据库而不安装服务器的最佳解决方案。

另一答案

您有三个选择:

  1. 每个桌面都有自己的私有数据库。

  2. 每个桌面都与一个远程数据库服务器对话。

  3. 每个桌面都与远程数据库服务器的Web前端对话。

“选项3”是最常见的情况。一种选择是“ Web应用程序”(在这种情况下,您根本不需要“ Swing Desktop”应用程序)。另一个选择是“厚客户端Java小程序”。您可以使用Swing,大多数处理将在本地进行,但是您的Swing小程序将与远程数据库进行通信以进行数据库访问。您可以考虑使用REST接口。

如果您真的想要选项1(应用程序和数据库完全在桌面上本地,那么我肯定会选择embedded databaseSqlite是一个很好的选择。实际上,Android使用Sqlite。 HSQLDB甚至MS-Access也是不错的选择。

另一答案

关于您的问题,请问您是否在应用程序的用户之间共享数据库的信息。我的意思是,如果您需要将数据集中在一个数据库中,则用户可以通过桌面Swing应用程序进行访问。

[如果是这样,那么您将需要另一个应用程序来提供存储在数据库中的信息(此时可以使用Web服务),那么您只需要实现Web Service客户端代码来与您的交互Swing应用程序访问数据库。

现在,如果要使用每个用户一个数据库的独立应用程序。然后,您可以选择许多选项,例如:

希望这可以使您了解需要实现的目标。

快乐编码。

另一答案

Marcelo Tateje

感谢您的回答。我也面临类似的挑战,您的回答很适合我。但是我有一个问题。如果我使用Web服务将我的Swing桌面应用程序连接到数据库,Swing桌面应用程序是否需要互联网连接才能从数据库中获取数据?我希望我正确地问了。谢谢

以上是关于分布式Java桌面应用程序mySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

jdbc连接mysq之serverTimezone设定

windows远程连接MySQL失败

Amoeba+Mysql 实现读写分离

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

Java连接MySQ据库 | 一文教会使用JDBC

[项目] 电子商城项目 Part.1