java - 本地 Java 应用程序 - 数据库选择

标签 java database jdbc local

我想征求您对我正在开发的 Java 应用程序的本地数据库的意见。

它是 vert 应用程序,这意味着我需要先存储客户、宠物和病史的详细信息。我知道如何使用 JDBC,但我只在小程序中在线使用过它。

所以,我真的不太了解本地解决方案以及当我将应用程序发布在 .jar 中时这些解决方案将如何工作,所以请指导我。 MySQL 还能工作吗?

谢谢!

最佳答案

这是一个相当笼统的问题,细节很简单,MySQL 听起来可以在这里工作。如果这仅用于本地访问并且不需要典型的客户端-服务器模型,那么我鼓励研究可以直接加载到 JVM 中的数据库引擎。好处之一是无需安装任何单独的数据库组件,整个数据库引擎的 JAR 可以打包在您的应用程序中。

下面是其中的一些:

  • Apache Derby
  • HyperSQL
  • H2
  • SQLite - 一些围绕 C 库的 Java 包装器可用,但据我所知,没有任何纯 Java JDBC 驱动程序可用于此。

我意识到开发人员为本地使用配置 MySQL 并不困难,但它可能会导致最终用户出现许多支持问题。可以编写安装脚本来预先配置大量安装,但我不确定其细节,在打包应用程序时,这将是您需要解决的额外项目。

关于为此使用 MySQL 的一些常见问题如下所示。这很可能是最好的方式,但这些只是一些需要考虑的事情。其中大部分并不是真正特定于应用程序的开发,更多的是在事物的支持方面。使用上述数据库引擎可以消除所有或许多这些问题。

  • 多台计算机都必须同时连接到同一个数据库吗?
  • 您使用什么 MySQL 密码?
  • 您是否建议最终用户都使用同一个安全性不佳的软件?
  • 或者最终用户是否需要创建一个,在这种情况下,您可能需要处理忘记的密码,而最终用户必须在您的应用程序中配置密码?
  • 您的最终用户是否运行可能会干扰数据库连接的防病毒软件?
  • 如果他们有另一个使用 MySQL 的程序已经在使用默认端口怎么办?

关于java - 本地 Java 应用程序 - 数据库选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136601/

相关文章:

java - Slf4j,logback - 从 json 中删除 mdc 标签

java - Webharvest Scraper 类中的 exitExecution() 和 stopExecution() 有什么区别

java - 生成 Hibernate 映射文件时未创建注释

java - 无法映射我的 Spring Maven 项目的资源

c# - 我可以混合使用 SqlConnection.BeginTransaction 和 TransactionScope 吗?

oop - 避免从数据库加载不必要的数据到对象(网页)

mysql - 关系数据库中的时区混淆

postgresql - JDBC 的美元报价失败

java - 无法创建池 Async Jersey+Spring+Tomcat 的初始连接

java - 如何将标准 Java 类型映射到 SQL 类型?