首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式Java桌面应用mySQL数据库

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

Stack Overflow用户
提问于 2015-07-09 03:29:28
回答 4查看 1K关注 0票数 4

我目前正在学习Java和swing,并且正在尝试创建一个桌面应用程序。

作为这个应用程序的一部分,我已经设置了一个应用程序连接到的mysql数据库,但是我不确定如果我要为其他用户分发应用程序,我如何创建一个数据库,如果他们没有安装mySQL或启动数据库,他们将能够在他们的系统上使用。

如果能帮上忙,我们将非常感激。

EN

回答 4

Stack Overflow用户

发布于 2015-07-09 03:38:24

你应该使用嵌入式数据库。我不建议将MySQL用于商业应用,因为它非常昂贵。尝试使用HSQLDB -非常快,并且没有内存泄漏(至少我没有注意到)。

下面是一个实现示例:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-07-09 03:39:51

我建议用SQLite而不是mySQL。听起来你需要一个独立的数据库,它不需要服务器来运行。我做过Java (和Android)、Swing以及C#。我发现SQLite是在不同平台上拥有数据库而不是安装服务器的最佳解决方案。

票数 1
EN

Stack Overflow用户

发布于 2015-07-09 03:44:58

您有三个选择:

  1. 每台台式机都有自己的专用数据库。
  2. 每台台式机都与一个远程数据库服务器通信。
  3. 每台台式机都与远程数据库服务器的web前端通信。

“选项3”是最常见的场景。一种选择是"web app“(在这种情况下,你根本不需要"Swing桌面”app )。另一种选择是“胖客户端Java小程序”。你可以使用Swing,大部分处理都是本地的……但是您的Swing小程序将与远程数据库通信以访问数据库。您可以考虑使用REST接口。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31301951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档