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

时间:2015-07-08 19:29:28

标签: java mysql database eclipse swing

我目前正在学习Java和摇摆,我正在尝试创建一个桌面应用程序 作为这个应用程序的一部分,我已经建立了一个应用程序所连接的mysql数据库,但是如果我要为其他用户分发应用程序,我不确定这将如何工作,我将如何创建一个他们是的数据库能够在他们的系统上使用,如果他们没有安装mySQL或启动数据库。
对此的帮助将非常感激。

4 个答案:

答案 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)

您有三种选择:

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

  2. 每个桌面与一个远程数据库服务器通信。

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

  4. "选项3"是最常见的情况。一个选项是"网络应用程序" (在这种情况下,您根本不需要" Swing桌面"应用程序)。另一种选择是"胖客户端Java小程序"。您可以使用Swing,大多数处理都是本地的...但您的Swing小程序将与远程数据库通信以进行数据库访问。您可以考虑使用REST界面。

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

答案 3 :(得分:0)

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

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

现在,如果您希望每个用户拥有一个数据库的独立应用程序。然后你可以选择许多选项:

希望这可以为您提供实施所需的方向。

快乐的编码。

相关问题