我不久前开始使用JPA,我觉得它很棒,因为它的注释使编程变得如此简单。但是我仍然有很多疑点让我感到有点迟钝(大部分时间都与配置问题有关):
我想了解OEPE(Oracle Enterprise Pack for Eclipse)中的derby DB之间的区别,我使用它来学习,以及流行的MySQL DB(www.mysql.com) 。令我困惑的是嵌入式数据库与非嵌入式数据库的区别。什么是更好的,你推荐什么?
第二个疑问是关于某些配置问题我无法用我的derby DB修复(不是嵌入式模式)我已经提出了一个问题,但我无法修复它。问题是,当我尝试访问我的数据库的某些表(数据库中存在的表,它们是由JPA功能创建的,从实体生成表)时,我得到SQLSyntaxErrorException,表示表不存在。我知道这是不可能的,因为在日食剪贴簿中手动插入的相同查询可以正常工作。我知道这有一些配置问题,但我不知道它是什么。 如果有更多JPA经验的人能帮助我,我会非常高兴。
我用于编程的工具是eclipse + OEPE,Java EE 6和GlassfishV3.0
这是我的另一个问题的链接,我在这里更详细地解释了这个问题: SQLSyntaxErrorException: Table/View 'BUYER' does not exist. What is missing?
提前致谢。
答案 0 :(得分:1)
关于问题1:
Derby / JavaDB有两种操作模式(引用形式为JavaDB documentation):
<强>嵌入式强>
指德比由一个人开始 简单的单用户Java应用程序。 有了这个选项,Derby就可以在 与Java相同的Java虚拟机(JVM) 应用。德比几乎可以 最终用户看不见,因为它 由...启动和停止 申请,通常不需要 管理。德比 文档通常将此称为 嵌入式配置或嵌入式 模式。
服务器(或基于服务器)
指德比由一个人开始 提供多用户的应用程序 跨越Derby数据库的连接 一个网络。使用此选项,Derby可以运行 在Java虚拟机(JVM)中 托管服务器。应用连接 从不同的JVM到服务器 访问数据库。德比网络 Server是Derby软件的一部分 分发并提供此类型 德比的框架。德比也有效 与其他人,独立 开发Server应用程序。该 Derby文档经常提到 这是网络服务器 配置或客户端/服务器 配置。
根据我的经验,两种模式的主要区别在于,在嵌入模式下,数据库是应用程序的一部分,只有一个用户可以连接到数据库。
在服务器模式下,数据库不是应用程序的一部分,在不同的JVM或其他计算机上运行,并以多用户/多连接模式运行。
关于 JavaDB和MySQL 的比较,我认为这取决于您的应用程序和功能要求。快速谷歌搜索显示此comparison of relational db systems(德比可以在Apache Derby的字母“A”下找到)。